下面的这个功能适用于静态页面,但在动态页面中它无法正常工作,它在第一次点击时执行这两个功能。
当用firebug(或jsenav)测试时,它确实可以正常工作
$(document).ready(function() {
$(".toggleShipingSched").toggle(function(){
$(this).html("close schedule").addClass("open").parent().animate({height:300+"px"},500);
},
function(){
$(this).html("see schedule").removeClass("open").parent().animate({height:34+"px"},500);
})
});
通过说动态我的意思是它来自服务器生成的内容。不是静态HTML 我解决了这个问题。
答案 0 :(得分:4)
我会在这里猜测一下。 如果您通过动态页面表示您使用ajax加载某些内容(或使用javascript生成),则必须在加载内容后绑定.toggle()而不是文档就绪(因为加载的元素不会出现在文档中)。如果你这样做,你最终可能会绑定.toggle()两次。
基本上,如果你运行$(“。toggleShipingSched”)。toggle()两次,它将不会覆盖第一个事件,而是将另一个事件绑定到它。然后单击.toggleShipingSched元素时,将调用两个函数。
如果这是问题,请确保在绑定新的toggle()之前取消绑定click事件。
$(".toggleShipingSched").unbind('click');