0

重複の可能性:
preventDefault() が機能しない

私はこのHTMLコードを持っています

<div id="nav-bar">  
  <span>  
        <a href="check.html">check</a>  
      </span>  
</div>

今、このアンカー タグのクリック イベントをバインドしようとしていて、stopPropagation を使用していますが、機能していません。

$('div#nav-bar').filter('a').click(function(event){
    event.preventDefault();
});
4

5 に答える 5

2

あなたは悪用しています.filter()。これは、jQuery オブジェクトの選択を絞り込むためです。jQuery オブジェクト内の要素.find()で一致する要素を検索します (したがって、要素内を検索します)。$('div#nav-bar').find('a')<a><div id="nav-bar">

ただし、直接セレクターを完全に使用するだけでも、マイレージが向上します。

$('#nav-bar a').click(function (e) {
    e.preventDefault();
});

セレクターは、要素内の#nav-bar aすべての要素を選択します。<a>#nav-bar

于 2012-08-28T17:01:10.103 に答える
1

から要素find()を取得するために使用する必要があります:<a>#nav-bar

$('#nav-bar').find('a').click(function(event) {
    event.preventDefault();
});

別のオプションは、セレクターを変更することです。

$('#nav-bar a').click(function(event) {
    event.preventDefault();
});
于 2012-08-28T16:58:16.300 に答える
1
$('#nav-bar a').click(function(event){
    event.preventDefault();
});  
于 2012-08-28T16:58:45.397 に答える
1
$('#nav-bar').on("click", "a", function(event){
    event.preventDefault();
});
于 2012-08-28T16:59:12.147 に答える
1

は必要あり.find()ませんし、必要ありませんe.preventDefault()。(そして明らかに、必要はありません.filter()

<div id="nav-bar">  
  <span>  
        <a href="#" data-url="check.html">check</a>  
      </span>  
</div>



$('div#nav-bar  a').click(function(){
   var url = $(this).data('url');
   window.location.href = url;
});
于 2012-08-28T16:59:13.807 に答える