代码之家  ›  专栏  ›  技术社区  ›  adardesign

.toggle()不起作用,同时执行

  •  0
  • adardesign  · 技术社区  · 16 年前

    下面的函数在静态页面中工作,但在动态页面中工作不正常,它在第一次单击时执行这两个函数。

    $(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

    1 回复  |  直到 16 年前
        1
  •  4
  •   Tjofras    16 年前

    我要在这里胡乱猜一猜。 如果动态页面的意思是使用ajax加载某些内容(或使用javascript生成),则必须在加载内容后绑定.toggle(),而不是在document ready上(因为加载的元素不会出现在document ready中)。如果这样做,可能会导致绑定.toggle()两次。

    如果这是问题所在,请确保在绑定新切换()之前解除单击事件的绑定。

    $(".toggleShipingSched").unbind('click');