如果我使用:
<a class="btn btn-primary someClassName">Test</>
$(document).ready(function () {
$("document").on("click", '.someClassName', function () {
alert('click');
});
});
如果点击该链接,则无法执行任何操作。
但是,如果我将其更改为:
<a class="btn btn-primary someClassName">Test</>
$(body).ready(function () {
$("document").on("click", '.someClassName', function () {
alert('click');
});
});
然后显示警报。
所以我的问题是:为什么$("document").on()
不起作用,为什么$("body").on()
有效?
答案 0 :(得分:7)
这是因为当您将字符串传递给选择器时,jQuery使用sizzle选择器引擎在DOM中搜索该元素。所以你正在寻找一个显然不存在的<document />
元素。
正确的语法是使用$(document)
;请注意缺少报价。然后jQuery使用document
对象作为父选择器。
答案 1 :(得分:4)
'document'
是元素选择器,没有标记名为document
的元素
$(document)