嘿,我有一个代码,适用于所有现代浏览器,但不适用于IE 6,7。
$('.cat1').toggle(function() {
$(this).parent('li').next('ul').slideUp();
$(this).css('background-position', '0px 0px');
return false;
}, function() {
$(this).parent('li').next('ul').slideDown();
$(this).css('background-position', '-210px 0px');
return false;
});
它会进行背景位置更改,但不会执行slideUp或slideDown,为什么会这样做?
我认为这是因为$(这个),但我不确定,如果是的话,有没有办法让它发挥作用?
编辑:似乎问题可能出在'next()'函数中。
答案 0 :(得分:1)
显然,$(this)有效,或者背景位置也不会改变。我怀疑它与选择哪些元素有关,或者更确切地说没有被选中。我建议(因为它是IE),你打破了选择,并做了一些警告,以确定哪些元素实际被选中。也许IE在你点击的元素和你认为应该是它的父元素的列表元素之间在DOM中插入一些额外的元素。如果是这种情况,更改为使用最接近('li')将是一种在树中导航以获取包含列表元素的方法。
答案 1 :(得分:0)
这可以通过在jQuery中使用noConflict来解决。这是解释它的jQuery文档的链接:http://docs.jquery.com/Core/jQuery.noConflict