2009-02-25 9 views
6

私はユーザーが任意の要素をクリックしてCSSを編集できるサイトを作ろうとしています。私は以下を使用して、すべてのlis、divs、およびulにclick関数を追加します。jQuery.clickトリガを先頭の要素にだけ持たせることはできますか?

$('li,div,ul').click(function() { 

alert(this.id); 

}); 

問題は、li要素をクリックすると、その要素とその下の要素の警告が表示されます。 (全ての容器)。

クリックするとトップエレメントだけをトリガーすることはできますか?

答えて

17

イベントの伝播を停止するには、イベントオブジェクトのstopPropagationメソッドを呼び出すことでjQueryでこれを行います。

$('li,div,ul').click(function (e) { 
    e.stopPropagation(); 
    alert(this.id); 
}); 
1

私はstopPropagation()を使用したいと思います。クリック機能の内部。

1

.stopPropagation()をお探しのように聞こえます。 stopPropagationを呼び出すと、イベントが親コンテナに「バブリング」しないようになります。

関連する問題