我有以下javascript:
$(document).ready(function () {
...
$("#mySelector").ready(function () {
window.alert('What the hell!!!');
});
});
每次mySelector
出现在文档的某个位置时,我都希望弹出窗口。
我现在面临的问题是,即使文档中不存在选择器,此代码也会正在运行(我会弹出)。
为什么会这样?
答案 0 :(得分:5)
ready
函数,即使你没有向jQuery传递任何参数,实际上也会触发ready
事件,即{{1它忽略了选择器。您可以使用$().ready()
属性:
length
答案 1 :(得分:3)
$.ready
是所有 jQuery对象的方法,无论它们是否包含任何元素。这是the source的相关部分。
答案 2 :(得分:1)
这不是ready()
的有效用法。当DOM准备就绪时,.ready()
方法会触发它的处理程序,或者如果已经加载了它,它显然会被加载。它基本上忽略了选择器。
通常使用jQuery方法,您无需测试是否存在。他们通常会安静地失败。
// Does nothing with no matches
$("#mySelector").each(function() {
alert("foobar!");
});