0

这是我的脚本:

$(document).ready(function(){
    $(".slideToggle").click(function(e) {   
       e.preventDefault();
       $(".top-menu li").removeClass("active");
       var $more = $("#impressum").slideToggle("slow");
       $("body,html").animate({
           scrollTop: $more.offset().top
    }, {
        duration: 1100,
        queue: false
    })
    });
});

当我单击具有类 slideToggle 的锚点时,它会打开印记 div。到目前为止,一切都很好。但是该事件$(".top-menu li").removeClass("active");没有被执行。我不知道为什么。一旦我删除了 slideToggle 函数,上面的事件就会起作用。但我不能在点击功能上结合这两个事件。

你能帮我吗?提前致谢!

编辑:似乎脚本与我正在使用的另一个脚本发生冲突:

$(document).ready(function() {
$("a.anchorLink").anchorAnimate()
// Cache selectors
var topMenu = $(".top-menu"),
    topMenuHeight = topMenu.outerHeight()+15,
    // All list items
    menuItems = topMenu.find("a.anchorLink"),
    // Anchors corresponding to menu items
    scrollItems = menuItems.map(function(){
      var item = $($(this).attr("href"));
      if (item.length) { return item; }
    });

// Bind to scroll
$(window).scroll(function(){
   // Get container scroll position
   var fromTop = $(this).scrollTop()+topMenuHeight;

   // Get id of current scroll item
   var cur = scrollItems.map(function(){
     if ($(this).offset().top < fromTop)
       return this;
   });
   // Get the id of the current element
   cur = cur[cur.length-1];
   var id = cur && cur.length ? cur[0].id : "";
   // Set/remove active class
   menuItems
     .parent().removeClass("active")
     .end().filter("[href=#"+id+"]").parent().addClass("active");
});
});

因为如果我删除这个脚本,另一个脚本就可以工作。错误在哪里?

4

2 回答 2

0

你用的是什么版本的jquery?
我做了一个小提琴,你的代码有效(我正在用萤火虫观看 li 元素,并且“活动”类正确地消失了)

http://jsfiddle.net/FKxyT/2/

您可以尝试更改removeClasstoggleClass. 也许这行得通。

于 2013-01-22T14:15:27.487 回答
0

首先,变量var $more =会做什么?我认为这对这个函数来说是多余的,这个变量在任何地方都不是用户。

也许您可以发布整个代码。

格茨,沃特

于 2013-01-22T14:12:41.503 回答