如果我在我的页面上包含来自 jquery.com 站点的最新版本的 jQuery:
<script src="http://code.jquery.com/jquery-latest.js"></script>
然后是以下代码 (pscript.js) 的第 3 行:
function init() {
$("textbox").focus();
$("textbox").addEventListener("keyup", _keytext, false); // line 3
$("textbox").addEventListener("blur", _save, false);
...
产生以下错误:
pscript.js:3 Uncaught TypeError: Object [object Object] has no method 'addEventListener'
我确认如果不包含 jquery 脚本,这个错误就会消失。我究竟做错了什么?如何在没有错误的情况下包含 jquery?
最佳答案
尝试each
直接访问每个节点:
$("textbox").each(function(){
this.addEventListener("keyup",_keytext,false);
});
或使用 jQuery 事件处理程序附件方法:
$("textbox").bind("keyup",_keytext);
默认情况下,$
由 jQuery 定义为返回一个 jQuery object ,节点集合(使用 jQuery 方法),而不是单个节点。因此,返回值没有 addEventListener
方法。 bind
(和 on
)与 jQuery 一起使用,而不是 addEventListener
。
如果您定义自己的$
(或使用其他库),您可以恢复$
的定义,这样jQuery will coexist with other libraries调用jQuery.noConflict()
.或者,在包含 jQuery 之后包含其他库或定义 $
,这样 jQuery 的定义将被覆盖。
关于javascript - 对象 [object Object] 没有方法 'addEventListener',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7679472/