我遇到的问题只发生在特定的计算机上(FFX 3.6.13,Windows 7,jQuery 1.4.3)。 有时会触发document.ready,但在尝试获取附加事件处理程序的元素时,元素不存在!
代码如下:
$(function(){
window.initStart = true;
$("#id_of_element").click(function()...);
window.initEnd = $("#id_of_element");
});
window.initStart / End用于调试,有时这个代码运行得很好,但有时window.initEnd只是一个空的jQuery集(长度== 0)。 这意味着document.ready总是被触发,但有时会在元素可用之前触发。
有人有这个问题吗?问题是什么?
答案 0 :(得分:1)
你可以尝试解决这个问题的一种方法是使用.live而不是.click。以下代码
$('#idOfDiv').live('click', function() { doStuff(); });
将输入函数附加到页面上删除的所有内容的Click事件,其id为“idOfDiv”,只要它进入页面即可。虽然.click立即执行,但无论div在什么时候进入页面都应该附加。
干杯
答案 1 :(得分:0)
有一个article on SitePoint演示了如何判断某些dom元素何时可用。
此外,我知道这是一个特定于版本的问题,但如果您使用的是Jquery 1.5,那么deferred objects的内容在这里会很有用。