这是我的剧本:
$(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单击锚点时,它会打开imprint 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");
});
});
因为如果删除此脚本,则其他脚本可以正常工作。 错误在哪里?
答案 0 :(得分:0)
首先变量var $more =
会做什么?
我认为这对于这个函数来说是多余的,这个变量永远不会在任何地方用户。
也许你可以发布整个代码。
Grtz, 沃特
答案 1 :(得分:0)
您使用的是什么版本的jquery?
我制作了一个小提琴并且你的代码正常工作(我正在用firebug观看li元素,并且“active”类正确地消失了)
您可以尝试更改removeClass
的{{1}}。也许这很有效。