Jquery $(document).prepend:委托事件处理程序中的“TypeError:e为null”?

时间:2014-03-21 06:18:50

标签: javascript jquery

这句简单的话:

$(document).prepend('<div>some text</div>');

从Jquery库产生错误:

TypeError: e is null

错误来自Jquery文件,而不是我的代码。我的函数不使用任何变量“e”。 Jquery版本是1.9.1。我没有发现任何产生此错误的已知问题,但上面的行是导致它的那一行,因为当行被注释掉时不会发生错误。我可以在其他地方附加元素就好了。发生问题行的函数是从MouseEnter事件处理程序调用的,如果这会产生影响。

知道可能导致这种情况的原因吗?

如果您想要更多代码(为了清晰和简洁而省略了不相关的行):

// Create a delegate event handler:
this.protected.$element.on('mouseenter','.'+this.protected.Prefrences.TriggerClass,function(e){base.eMouseEnter(e,this)});


// Called when the user hovers over the tooltip
ATK.ToolTip.prototype.eMouseEnter = function(e, eventThis){
   this.ShowToolTip($(eventThis));   
}


ATK.ToolTip.prototype.ShowToolTip = function($TipElement){
   $(document).prepend('<div>sometext</div>'); // Triggers "TypeError: e is null" ?!
}

1 个答案:

答案 0 :(得分:5)

您正尝试将div元素添加到document的开头,而不是:

$(document).prepend('<div>sometext</div>');

尝试做:

$(document.body).prepend('<div>sometext</div>');