元素是语句和If语句的组合,在悬停时不能正确响应

Element is Statement Combined With If Statment Not Responding Properly on Hover

本文关键字:语句 悬停 不能 响应 If 组合 元素      更新时间:2023-09-26

这里确实需要一些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()
    });

真的需要你的帮助。提前感谢!

现在,你的代码块只在javascript加载时被检查。此时,.uranus元素可能没有活动,因此不会发生任何事情。

首先,你想把这个块移动到document ready,否则你的元素,如.uranus可能甚至还不存在。

您的逻辑非常接近,但您需要像这样移动hover函数内部的if语句:

$('#uranus .infos').hover(
        function () {
            if($("a.active").is('.uranus')){
                $("#descriptionsp").fadeIn("2000");
            }
        });

这样,每次将鼠标悬停在#uranus .infos上时,它只会在.uranus也是.active

时执行代码