内联返回false停止我的setTimeout

时间:2013-02-08 07:28:17

标签: jquery settimeout

我有以下代码,用于在用户点击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)
});

感谢任何帮助。

2 个答案:

答案 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