javascript - 对象 [object Object] 没有方法 'addEventListener'

标签 javascript jquery html

如果我在我的页面上包含来自 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/

相关文章:

javascript - 对象数组压缩为具有嵌套数组的唯一对象数组

javascript - 是否可以在 JavaScript 中包含 HTML 代码?

JavaScript:动态执行跟踪代码

javascript - 使用 CKEditor 4.5 使用 FileBrowser 回调代替弹出窗口

javascript - 在 jquery 中添加 <li> 标签不起作用

javascript - 将 JS 与 rollup 和 Babel 捆绑以在 IE11 中使用

javascript - 在 jQuery 自动完成中获取动态值

javascript - jQuery nextAll——点击 h 元素切换所有 p 元素直到下一个 h

html - 表格行没有全高

html - 使用 Karma 生成 HTML 测试报告