这里真的需要一些JQuery帮助。我即将推出笔记本电脑。我已经用这段代码走了很长一段路,我觉得我几乎就在那里,但我陷入了最后的障碍。
我只是在这里包含相关的代码片段,因为它是一个非常大的部分。
我有一个模拟太阳系的导航菜单。如果你想看到整个东西,这里是更大的外部作品的链接。 http://jsbin.com/zagiko/1/edit(请注意,这主要用于CSS3)。
我有一个导航菜单,当您点击导航菜单中的值时,当前脚本会分配一个活动类。这一切都很完美。我内置了一个按钮来测试点击活动状态,状态变化正常。但我需要它来回应悬停状态的变化。我不是JQuery人;我在学习。这似乎是悬停不起作用,因为它响应页面加载时加载的数据而不是实时响应。但我只是在猜测。
我需要的是一个if语句,它将响应实时数据(不是在页面加载时或文档准备好时)。 if语句基本上应该说这个div是否有效,那么这个其他div可以在悬停时出现。但是如果这个div没有激活那么它就不会出现了。
我写的当前if语句是
if($("a.active").is('.uranus')){
$('#uranus .infos').hover(
function () {
$("#descriptionsp").fadeIn("2000");
})
};
当网站加载设置菜单时运行的当前脚本是:
$(window).load(function(){
var e=$("body"),
t=$("#universe"),
n=$("#solar-system"),
r=function() {
e.removeClass("view-2D opening").addClass("view-3D").delay(2e3).queue(function() {
$(this).removeClass("hide-UI").addClass("set-speed");
$(this).dequeue()})
},
i=function(e){
t.removeClass().addClass(e)
};
$("#toggle-data").click(function(t){
e.toggleClass("data-open data-close");
t.preventDefault()
});
$("#toggle-controls").click(function(t){
e.toggleClass("controls-open controls-close");
t.preventDefault()
});
$("#data a").click(function(e){
var t=$(this).attr("class");
n.removeClass().addClass(t);
$(this).parent().find("a").removeClass("active");
$(this).addClass("active");
e.preventDefault()
});
真的需要你的帮助。提前谢谢!
答案 0 :(得分:1)
现在,只有在加载javascript时才会检查您的代码块。目前,.uranus
元素可能未处于活动状态,因此不会发生任何事情。
首先,您希望在文档内部移动此块,否则您的元素.uranus
可能甚至不存在。
你的逻辑非常接近,但你需要在hover
函数中移动if语句,如下所示:
$('#uranus .infos').hover(
function () {
if($("a.active").is('.uranus')){
$("#descriptionsp").fadeIn("2000");
}
});
这样,每次将鼠标悬停在#uranus .infos
上时,如果.uranus
也是.active