以下のようにイベントをバインドしました。
$(document).delegate('.budget', 'click', function(e){
if ($(this).hasClass('collapsed')) {
$(this).removeClass('collapsed');
$(this).addClass('expanded');
}
else if ($(this).hasClass('expanded')) {
$(this).removeClass('expanded');
$(this).addClass('collapsed');
}
});
基本的に、これは展開と折りたたみを切り替えます。
以下のようにバインドされた別のイベントがあります。
$('[id^="tree"]').delegate('.collapsed', 'click', function(e){
var elementId = $(this).attr('id');
hideChildElement(elementId);
});
2 番目のイベント バインディングによってバインドされた要素は、最初のイベント バインディングによってバインドされた要素の親です。何が起こるかというと、最初のバインディング イベント メソッドの要素をクリックすると、2 番目のイベント バインディングによってバインドされたイベントもトリガーされます。2 番目のイベント バインディングから 1 番目のイベント バインディング メソッドにイベントがバインドされないようにしたいと考えています。
要素 A が最初のイベント バインディングのクリック イベントにバインドされ、B が 2 番目のイベント バインディングにバインドされている場合 (A が B の内部にあるか、A が B の子である)、B のイベントを A に伝播させたくありませんe.stopImmediatePropagation();
。働いていない