我有以下代码,用于在用户点击li中的标签时捕获。我可以成功捕获事件,但是如果我在事件中使用setTimeout,则内联'返回false'在标签中阻止这种情况发生。有关如何停止或删除内联标记的任何想法都会返回false;'?
我不能删除它,因为它被用于桌面网站,我正在覆盖其移动网站的功能。
<ul class="paginate">
<li>1</li>
<li>
<a href="http://www.xxx.co.uk/xxx/" onclick="ajaxPage('2',true,'left'); return false;">2</a>
</li>
</ul>
$('.paginate li a').click(function(){
alert('Caught page'); // THIS WORKS
setTimeout(function(){
setSearchPrice(); // THIS DOESN'T WORK, GET SUPPRESSED BUT THE INLINE RETURN FALSE
},1400)
});
感谢任何帮助。
答案 0 :(得分:0)
我不能删除它,因为它被用于桌面网站,我正在覆盖其移动网站的功能。
我不知道它与它有什么关系,但您可以删除onclick
DOM0处理程序:
$('.paginate li a').each(function() {
// Remove the onclick set up in the markup, since you're replacing it
this.onclick = null;
}).click(function(e){
// The replacement
alert('Caught page');
setTimeout(function(){
setSearchPrice();
},1400)
// Probably want to prevent the default, since you've removed
// the `return false` on the DOM0 handler that used to do it
e.preventDefault();
});
答案 1 :(得分:-1)
我建议使用event.preventDefault()
;
它将停止事件的默认操作。
这是一个很好的解释它是如何工作的。
https://developer.mozilla.org/en-US/docs/DOM/event.preventDefault