【发布时间】:2014-07-11 19:43:26
【问题描述】:
在构造函数中我创建一个元素
var this.legendElement = this.compileLegend();
然后我想在事件监听器中使用它:
var takeControl = function() {
this.element.empty();
this.legendElement.appendTo(this.element);
}
legendElement 被附加,但它是空的!我不明白为什么。 在其他浏览器(经过测试的 firefox、chrome)中可以正常工作。
当我打印 this.legendElement 的内容时,我看到了预期的 html 代码。换句话说
console.log(this.legendElement);
生成具有正确内容的预期 html 代码(我在 takeControl 函数中调用它)。
我尝试了几种方法来修复它
this.element.append(this.legendElement)
也不行。
这个:
this.element.append(this.legendElement.html())
附加 html 代码,但周围没有 this.legendElement(这是预期的)。
所以下面
this.element.append($('<div />').append(this.legendElement).html())
做我想让它做的事,但是它看起来就像一个丑陋的黑客。
所以,我的问题是:发生了什么,我能得到什么
this.element.append(this.legendElement)
上班?
提前致谢! ^_^
【问题讨论】:
-
this.compileLegend();究竟返回了什么,this.element的结构是什么? -
this.compileLegend() 只是用子元素填充 $('') 并返回它.. 一些跨度和 imgs ...... this.element 只是 $(' ')
-
我在兼容模式下附加选项时遇到了同样的问题...
-
只需为新添加的 html 项加载资源,如下所示:jQuery.ajaxSetup({ async: false }); $.get("wwwroot/bootnavbar/bootnavbar.css") .done(function () { // 存在代码 jQuery.ajaxSetup({ async: true }); }).fail(function () { // 不存在代码jQuery.ajaxSetup({ async: true }); });这里有更多信息:stackoverflow.com/a/66488564/14491024
标签: jquery internet-explorer internet-explorer-11