1
<tr>
  <td>
    <a></a>
  </td>
</tr>

さて、<tr>ノードにはイベントリスナーがあります$('tr').click(handler1)<a>しかし、ノードがと同じ動作をすることは望ましくありません。

とにかくjQueryなしでそれを行うことができますか?

4

4 に答える 4

2

イベントハンドラーを a にも追加し、デフォルトを防止します

$(function(){
  $("tr a").click(function(e){
       e.preventDefault();
   });
});

アップデート:

リンクがデフォルトのアクションを実行し続けたいが、イベントが tr までバブルアップしたくない場合は、まだ打者に変更しe.stopPropagation();ますe.preventDefault();

于 2013-02-14T02:53:55.783 に答える
2

jQueryを使用する代わりに、このようなものを見ることができます

document.getElementById('x').addEventListener('click', function(e){
    if(e.target.tagName == 'A'){
        alert('Clicked A')
    }else{
        alert('clicked tr')
    }
    }, false);

デモ:フィドル

jQuery の場合:

$('tr').on('click', function(e){
    if($(e.target).is('a')){
        alert('clicked a')
    } else {
        alert('clicked tr')
    }
})

デモ:フィドル

于 2013-02-14T03:35:27.103 に答える
1
$('tr').click(function(e){    
     if($(e.target).is('#youranchorelementid')){ //you can use class also if you have many elements
    e.preventDefault();
    }

});
于 2013-02-14T03:14:05.013 に答える
1
$('tr').click(function(e){
    e.preventDefault();
});
于 2013-02-14T02:57:22.203 に答える