toggle-event在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文档。
.toggle()方法是为方便而提供的。手动实现相同行为相对直接,并且如果内置在.toggle()中的假设证明有限,则这可能是必要的。例如,如果两次应用于同一元素,则不能保证 .toggle() 的正确工作。由于 .toggle() 在内部使用单击处理程序来执行其工作,因此我们必须取消绑定单击以删除使用 .toggle() 附加的行为,以便可以捕获其他单击处理程序。实现还在事件上调用.preventdefault(),因此如果在元素上调用了 .toggle(),则链接将不会被跟踪,按钮将不会被点击,jQuery文档
您可以使用点击事件通过show和hide方法在元素之间切换可见性。您可以根据可见性设置条件,如果元素可见,则隐藏,否则显示。 请注意,您需要jQuery UI才能使用show/hide的其他特效,例如direction。
演示
$( "#myelement" ).click(function() {
if($('#another-element:visible').length)
$('#another-element').hide("slide", { direction: "right" }, 1000);
else
$('#another-element').show("slide", { direction: "right" }, 1000);
});
或者,直接使用 toggle 而不是 click。通过使用 toggle,您无需条件(if-else)语句。正如 T.J.Crowder 所建议的。
Live Demo
$( "#myelement" ).click(function() {
$('#another-element').toggle("slide", { direction: "right" }, 1000);
});
var elm = $(“#another-element”); if(elm.is(“:visible”)){ /* Do one thing */ } else { /* Do the other */ }
(您的具体示例实际上将成为单行器在点击内:$('#another-element').toggle(“slide”,{direction:“right”},1000);
但是,由于目标是展示做不同的事情[两个函数]...) - T.J. Crowder