切换事件在 1.8 版中已弃用,并在 1.9 版中删除
尝试这个...
$('#myelement').toggle(
function () {
$('#another-element').show("slide", {
direction: "right"
}, 1000);
},
function () {
$('#another-element').hide("slide", {
direction: "right"
}, 1000);
});
注意:此方法签名在 jQuery 1.8 中已弃用,并在 jQuery 1.9 中删除。jQuery 还提供了一个名为 .toggle() 的动画方法,用于切换元素的可见性。是否触发动画或事件方法取决于传递的参数集jQuery docs。
为方便起见,提供了 .toggle() 方法。手动实现相同的行为相对简单,如果 .toggle() 内置的假设证明是有限的,这可能是必要的。例如,如果将 .toggle() 应用于同一元素两次,则不能保证正常工作。由于 .toggle() 内部使用了一个点击处理程序来完成它的工作,我们必须解除对点击的绑定以移除一个附加在 .toggle() 中的行为,这样其他的点击处理程序就可以在交火中被捕获。该实现还在事件上调用 .preventDefault() ,因此如果在元素上调用了 .toggle() ,则不会跟踪链接并且不会单击按钮,jQuery docs
您可以使用显示在可见性和单击隐藏之间切换。如果元素可见,则可以对可见性设置条件,然后隐藏其他显示它。请注意,您将需要jQuery UI来使用显示/隐藏类似方向的附加效果。
现场演示
$( "#myelement" ).click(function() {
if($('#another-element:visible').length)
$('#another-element').hide("slide", { direction: "right" }, 1000);
else
$('#another-element').show("slide", { direction: "right" }, 1000);
});
或者,只需使用切换而不是单击。通过使用切换,您将不需要条件 (if-else) 语句。正如 TJCrowder 所建议的那样。
现场演示
$( "#myelement" ).click(function() {
$('#another-element').toggle("slide", { direction: "right" }, 1000);
});