-1

ユーザーがliのタグをクリックしたときにキャプチャする次のコードがあります。イベントを正常にキャプチャできますが、イベントで setTimeout を使用すると、タグのインライン 'return false' によってこれが発生しなくなります。インラインタグ「return 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)
});

どんな助けでも大歓迎です。

4

2 に答える 2

0

I cannot just delete it as this is being used for the desktop site and I am overriding its functionality for the mobile site.

I don't see what that has to do with it, but you can remove the onclick DOM0 handler:

$('.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();
});
于 2013-02-08T07:35:38.967 に答える
-1

I will suggest the use of event.preventDefault(); It will stop the default action of the event. Here is a good explanation how it works.

https://developer.mozilla.org/en-US/docs/DOM/event.preventDefault

于 2013-02-08T07:36:49.177 に答える