我有一个我要淡入/淡出的页面。但是,我不希望菜单(或div类menu-outer
中的任何内容)随之消失。我几乎不知道任何jQuery,所以想知道你们中是否有人知道为什么这不起作用。
jQuery:
$(document).ready(function() {
$('body:not(div.menu-outer)').css('display', 'none');
$('body:not(div.menu-outer)').fadeIn(1000);
$('a').click(function(event) {
event.preventDefault();
newLocation = this.href;
$('body:not(div.menu-outer)').fadeOut(1000, newpage);
});
function newpage() {
window.location = newLocation;
}
});
html很大,所以我不会发布它,但我要排除的div有一类菜单外。
答案 0 :(得分:0)
您可以这样做:
$('*').not("div.menu-outer").fadeOut();
这说明:选择所有内容:$(*)
,div.menu-outer
除外:.not("div.menu-outer")
答案 1 :(得分:0)
已更新,注意$('body:not(div.menu-outer)').fadeOut(1000, newpage);
将回调newpage
附加到body
的每个子元素,但div.menu-outer
除外;对于具有该集合的每个元素将被调用一次;可以利用.promise().done(fn)
作为替代;只调用一次回调
$(document).ready(function () {
function newpage(newLocation) {
window.location = newLocation;
}
$('body *:not(div.menu-outer)').fadeOut(-3000);
$('body *').fadeIn(1000);
$('a').on("click", function (event) {
var el = $(this);
event.preventDefault();
// newLocation = this.href;
$('body *:not(div.menu-outer)').fadeOut(1000)
.promise().done(function() {
// do other stuff
newpage(el.attr("href"))
});
});
});
jsfiddle http://jsfiddle.net/g8sdc5q6/2/
答案 2 :(得分:0)
您正在隐藏菜单的祖先元素,而这些元素又会隐藏菜单。你可以尝试这样的事情:
var menuParents = $('div.menu-outer').parents();
$('*').not('div.menu-outer').not(parents).css('display', 'none');
$('*').not('div.menu-outer').not(parents).fadeIn(1000);