-1

親と子のDIV間の問題。uをクリックすると、子divが親divと同じように表示されます。子divが親divアクションに従わないようにしたい。stopPropagation()が機能しないか、混乱している可能性があります。

htmlコード:

<div class="innerbox">
<div id="button"></div>
</div>

jQueryコード:

<script type="text/javascript">
//<![CDATA[
function ShowHide(d){
    $("div#button").click(function(e) {
       e.stopPropagation();
       return;
    });

    //$(".innerbox").click(function(e) {
        jQuery(d).animate({"height": "toggle"}, {
            duration: 500,
            complete: function() {
                //add action after complete action...
            }
        });
    //});
}
//]]>
</script>
4

1 に答える 1

1

「.innerbox」divをクリックしたときにアニメーション化したいが、「#button」divをアニメーション化したくない場合は、「#button」をdiv外に移動する必要があります。 「.innerbox」divは、子要素がその親のアニメーションの影響を受けるためです。

stopPropagationイベント自体が祖先の要素にまで泡立つのを止めることであり、あなたがしたことの影響ではありません。確かにその場合、clickイベントは停止され、「。innerbox」に送信されませんdiv


これは話題から外れているかもしれませんが、いつ/どのように電話しますShowHideか?関数内でイベントハンドラーを接続しているためです。を呼び出すたびShowHideに、新しいハンドラーがアタッチされます。私はそれがあなたが望むものではない可能性が高いと思います...

于 2011-07-05T14:09:59.067 に答える