如何将jquery函数绑定到指定的元素

时间:2014-03-10 14:38:12

标签: javascript jquery html

我想让函数只在具有指定元素的页面上运行。 我有搜索页面,搜索字段和结果在search-block div中。 我想将函数绑定到此块,因此函数将无法在其他页面上运行(没有<div id='search-block>...</div>

我有下一个js代码atm:

$(document).ready(function()
    // instructions for another page (handlers for some links)

    $(function(){
        setInterval(findSomething,1000);
    });     
});

它在search-block div的页面上正常工作,但它在其他页面上也能正常工作。浏览器尝试在所有其他页面上运行此功能。我不需要这个。

我尝试了jquery bind,但它现在对我有用,不知道为什么:(

$("#search-block").bind(function(){
    setInterval(findSomething,1000);
}); 

我如何将处理程序绑定到speciges too.fied block?

2 个答案:

答案 0 :(得分:3)

您必须检查该元素的长度,而不是绑定:

$(document).ready(function(){
   if($('#search-block').length > 0){ // <---checks the availability
       setInterval(findSomething,1000);
   }
}); 

答案 1 :(得分:2)

Bind始终与事件绑定到:

$( "#foo" ).bind( "mouseenter mouseleave", function() {

});

如果您只想在页面上有块时执行该操作,请使用:

if ($('#search-block').length) {
    setInterval(findSomething,1000);
}

这将检查在页面上找到#search-block的次数,如果它不是0(false)则执行代码。