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>
答案 0 :(得分:1)
如果你在点击“.innerbox”div
时想要为它设置动画,但你不想让“#button”div动画,你必须要将“#button”div
移出“.innerbox”div
,因为子元素将受其父级动画的影响。
stopPropagation
是关于阻止事件本身冒泡到祖先元素,而不是你所做的事情的影响。当然,在这种情况下,click
事件正在停止,而不会发送到“.innerbox”div
。
这可能是偏离主题的,但是何时/如何致电ShowHide
?因为你正在连接函数中的事件处理程序;每次拨打ShowHide
时,都会附加一个新的处理程序。我不认为这可能是你想要的......