以下代码将点击处理程序绑定到相对较大/复杂页面上的大约30个锚点,并且它的问题在于它似乎需要几秒钟才能完成所有内容的绑定。 (我猜。)
var fiveNavs = $('[id$=nav]').find('a:not(.exception)');
fiveNavs.click(function(){
// doingness
return false;
});
我必须有某种方式来看看它需要多长时间,或者至少要弄明白它什么时候准备采取行动。 (如果我太快点击其中一个链接,它会表现得很奇怪,但是如果我在脚本加载完成后等待几秒钟(通过.getScript),它就能完美运行。)
我一直在研究各种检测方法,然后绑定一个点击功能,但到目前为止我没有任何工作。如果可能的话,我想知道从这段代码开始到现在一切都已准备就绪所需的时间。
至少我想弄清楚的是(伪代码):
$.when( fiveNavs.allBoundUpAndReady() )
.then( alert('bam') );
谢谢!
答案 0 :(得分:0)
我怀疑您可能在完全呈现DOM之前绑定了click事件。
我建议你将你的点击处理程序包装在jQuery的文档就绪方法中(见下文):
$(function(){
var fiveNavs = $('[id$=nav]').find('a:not(.exception)');
fiveNavs.click(function(){
// doingness
return false;
});
}):
答案 1 :(得分:0)
您实际上是绑定到各个锚点,但是找到五个容器的选择器是错误的。试试这个
$('[id*="nav"]').on('click','a:not(.exception)',function(){
// Do something here
});
这绑定到包含'nav'的id
的容器,但过滤到指定的锚点。这应该只绑定五个元素而不是三十个。