0

多くの e.stopPropagation を含むページがあるため、関数を作成することにしました。ここにコードがあります

function stopProp(name) {
 if($(e.target).hasClass(name)) {
   e.stopPropagation();
   }
 }

コンソールで毎回まったく機能していないようで、stopProp が未定義であると表示されます。

これが私が関数に変えようとしている実際のJSです

$('#chatting').on('click','.chatheader',function(e){
     if($(e.target).hasClass('setting')) {
         e.stopPropagation();
      }
    }
});

これが機能しない理由と、これについてどうすればよいかを理解するのを手伝ってくれる人はいますか? 関数に変更するだけでかなり簡単になると思ったので、簡単に書くことができますstopProp('setting');が、ここではそうではありません。

4

2 に答える 2

1

eventオブジェクトをstopPropメソッドに渡す必要があります。

function stopProp(e) {
    if($(e.target).hasClass(e.data.className)) {
        e.stopPropagation();
    }
}

それで

$('#chatting').on('click', '.chatheader', {className: 'setting'}, stopProp);

デモ:フィドル

于 2013-04-29T08:14:23.293 に答える