我想让函数只在具有指定元素的页面上运行。
我有搜索页面,搜索字段和结果在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?
答案 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)则执行代码。