-1

父子DIV之间的问题。当您单击子 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 回答