0

私はこの状況にあります:http://jsfiddle.net/Lm7ac/4/

$(".more").hide();

$(document).on("click", ".btn",function() { 
            alert("hello");     
});   

$(document).on("click", "div.post",function() {
     var morediv = $(this).find(".more");

     morediv.slideToggle('fast');
});

「.btn」をクリックするときは、「。more」を閉じたまま(または開いたまま)にする必要があります。

どうやってやるの?

ありがとう

4

2 に答える 2

3

使用event.stopPropagation():

$(document).on("click", ".btn",function(event) {
    event.stopPropagation();    
    alert("hello");     
}); 

...eventコールバックへの引数に注意してください。上記のように必ず含めてください。

http://jsfiddle.net/KJ5Uv/

乾杯

于 2012-12-08T00:18:41.630 に答える
2

クリック イベント ハンドラのちょうどreturn false最後に。.btn

$(document).on("click", ".btn",function() { 
            alert("hello");     
    return false;
});  

return falsejQuery イベント ハンドラーを使用する場合は、同時に呼び出しevent.preventDefault()ているようなものです。event.stopPropagation()

ここにデモがあります:http://jsfiddle.net/Lm7ac/5/

のドキュメントevent.preventDefault(): http://api.jquery.com/event.preventDefault/

ドキュメントevent.stopPropagation(): http://api.jquery.com/event.stopPropagation/

于 2012-12-08T00:18:33.680 に答える