Object [object Object]没有方法'addEventListener'

Laz*_*zer 1 html javascript jquery

如果我在我的页面上的jquery.com网站上包含最新版本的jQuery:

<script src="http://code.jquery.com/jquery-latest.js"></script>
Run Code Online (Sandbox Code Playgroud)

然后是以下代码的第3行(pscript.js):

function init() {
    $("textbox").focus();
    $("textbox").addEventListener("keyup", _keytext, false); // line 3
    $("textbox").addEventListener("blur", _save, false);
    ...
Run Code Online (Sandbox Code Playgroud)

产生以下错误:

pscript.js:3未捕获TypeError:对象[object Object]没有方法'addEventListener'

我确认如果不包含jquery脚本,这个错误就会消失.我究竟做错了什么?如何在没有错误的情况下包含jquery?

Jos*_*kle 12

尝试each直接访问每个节点:

$("textbox").each(function(){
    this.addEventListener("keyup",_keytext,false);
});
Run Code Online (Sandbox Code Playgroud)

或使用jQuery事件处理程序附件方法:

$("textbox").bind("keyup",_keytext);
Run Code Online (Sandbox Code Playgroud)

默认情况下,$由jQuery定义返回一个jQuery对象,一个节点集合(使用jQuery方法),而不是单个节点.因此,返回值没有addEventListener方法.bind(和on)与jQuery一起使用,而不是addEventListener.

如果您定义自己的$(或使用另一个这样做的库),您可以恢复定义,$以便jQuery将通过调用与其他库共存jQuery.noConflict().或者,包括其他库或$在包含jQuery之后定义,因此jQuery的定义将被覆盖.