jquery检测点击事件何时绑定并就绪



下面的一段代码将一个点击处理程序绑定到一个相对较大/复杂的页面上的大约30个锚点,但它的问题在于似乎需要几秒钟才能完成所有绑定。(我猜。)

    var fiveNavs = $('[id$=nav]').find('a:not(.exception)');
    fiveNavs.click(function(){ 
        // doingness
        return false;
    });

我一定有办法看看需要多长时间,或者至少弄清楚什么时候可以采取行动。(如果我过早地点击其中一个链接,它的行为会很奇怪,但如果我在脚本加载完成后等待几秒钟(通过.getScript),它会完美地工作。)

我一直在研究各种检测方法,然后点击函数被绑定,但到目前为止,一切都不起作用。如果可能的话,我想知道从这段代码开始到一切就绪需要多长时间。

至少我想弄清楚的是(伪代码):

   $.when( fiveNavs.allBoundUpAndReady() )
    .then( alert('bam') );

谢谢!

我怀疑您可能在DOM完全呈现之前绑定了click事件。

我建议您将您的点击处理程序包装在jQuery的文档就绪方法中(见下文):

$(function(){
    var fiveNavs = $('[id$=nav]').find('a:not(.exception)');
    fiveNavs.click(function(){ 
       // doingness
       return false;
    });
}):

您实际上绑定到了各个锚点,但您的选择器找不到五个容器是错误的。试试这个

 $('[id*="nav"]').on('click','a:not(.exception)',function(){
   // Do something here
 });

这绑定到id包含"nav"的容器,但过滤到指定的锚点。这应该只与五个元素绑定,而不是与三十个元素绑定。

最新更新