使用jquery更改悬停的src

使用jquery更改悬停的src,jquery,dom,hover,Jquery,Dom,Hover,我需要关闭默认的悬停状态。我有以下代码 $(this).attr("id"); if ((this.id == "defaultTab") ){ $(img#defaultTab)[0].src.replace("_on","_off"); }, 我要告诉代码的是,如果“this”悬停的id是DefaultTab,那么取defaultTabs图像src并替换它 这是我的错误 请帮忙 谢谢 我将公布我的全部职能供审查。发生的事情是,“defaultTab”似乎不作为我获取src的对象存在 /

我需要关闭默认的悬停状态。我有以下代码

$(this).attr("id"); 
if ((this.id == "defaultTab") ){
$(img#defaultTab)[0].src.replace("_on","_off");
},
我要告诉代码的是,如果“this”悬停的id是DefaultTab,那么取defaultTabs图像src并替换它

这是我的错误

请帮忙

谢谢


我将公布我的全部职能供审查。发生的事情是,“defaultTab”似乎不作为我获取src的对象存在

// **************  TABs  ********************//

jQuery.preloadImages = function()
{
for(var i = 0; i<arguments.length; i++)
    {
        jQuery("<img>").attr("src", arguments[i]);
    }
} 

// preload images first (can run before page is fully loaded)
$.preloadImages("images/tabs01_off.jpg", "images/tabs01_on.jpg",   "images/tabs02_off.jpg","images/tabs02_on.jpg","images/tabs03_off.jpg","images/tabs03_on.jpg","images/tabs04_off.jpg","images/tabs04_on.jpg","images/tabs05_off.jpg","images/tabs05_on.jpg","images/tabs06_off.jpg","images/tabs06_on.jpg","images/tabs07_off.jpg","images/tabs07_on.jpg","images/17.jpg","images/22.jpg","images/24.jpg","images/28.jpg","images/30.jpg","images/31.jpg","images/38.jpg" );
$(
    function()
        {
            // set up rollover  -- this controls the hover states
            $("img.rollover").hover(
                function()
                    {

                    var image_id=$(this).attr("data-image"); // created a variable, making this an Jquery wrapped object.
                    this.src = this.src.replace("_off","_on");
                    $('#changeImg').css("background-image", "url(images/"+ image_id +'.jpg)'); 
                    $("#default_img").hide();


                    $(this).attr("id"); 
                    if (!(this.id == "defaultTab") ){
                        document.getElementById("defaultTab");
                        console.log();
                     $(this.id)[0].src.replace("_on","_off");
                      console.log('img.defaultTab');
                    }

                },
            function()
                {
                    this.src = this.src.replace("_on","_off");
                }
        );
    }
/**********选项卡********************//
jQuery.PreloImages=函数()
{

对于(var i=0;i更新:现在我完全理解了这个问题,下面是我的建议:

您可以搜索图像,该图像在其
src
属性中包含
\u on
(请参见)并更改值。例如(仅包括相关代码):

然后,您甚至不需要用ID标记默认图像


我不太清楚您使用take defaultTabs image的意思。如果
引用该图像,您可以简单地执行以下操作:

if (this.id === "defaultTab"){
    this.src = this.src.replace("_on","_off");
}
另一方面,如果图像是此
的后代,则必须使用
查找

if (this.id == "defaultTab"){
    $(this).find('img').attr(src, function(i, value) {
        return value.replace("_on","_off");
    });
}

请注意,同一ID只能分配给一个元素,不能分配给多个元素。

更新:现在我完全理解了这个问题,下面是我的建议:

您可以搜索图像,该图像在其
src
属性中包含
\u on
(请参见)并更改值。例如(仅包括相关代码):

然后,您甚至不需要用ID标记默认图像


我不太清楚您使用take defaultTabs image的意思。如果
引用该图像,您可以简单地执行以下操作:

if (this.id === "defaultTab"){
    this.src = this.src.replace("_on","_off");
}
另一方面,如果图像是此的后代,则必须使用
查找

if (this.id == "defaultTab"){
    $(this).find('img').attr(src, function(i, value) {
        return value.replace("_on","_off");
    });
}

请注意,同一ID只能分配给一个元素,不能分配给多个元素。

我很难理解您的逻辑,但可能类似于:

$(this).mouseenter(function() {
    if (this.id != 'defaultTab') {
        return;
    }
    this.src = this.src.replace(/_on/g,'_off');
});

我很难理解你的逻辑,但可能是这样的:

$(this).mouseenter(function() {
    if (this.id != 'defaultTab') {
        return;
    }
    this.src = this.src.replace(/_on/g,'_off');
});

当您悬停时,下面的选项将用“开”替换“关”,当您不悬停时,下面的选项将用“关”替换“开”

如果您将鼠标悬停在另一个选项卡上,请禁用默认设置;如果您未悬停,则默认设置将启用

$('.rollover').not('#defaultTab').hover(function(){
    $(this).attr('src',$(this).attr('src').replace("_off","_on"));
    $('#defaultTab').attr('src',$('#defaultTab').attr('src').replace("_on","_off"));
},function(){
    $(this).attr('src',$(this).attr('src').replace("_on","_off"));
    $('#defaultTab').attr('src',$('#defaultTab').attr('src').replace("_off","_on"));
});
如果希望有人悬停的最后一个项目保持“打开”状态,而不是默认的“打开”,则可以使用此选项:

$('.rollover').hover(function(){
    var hovered = $(this); // save the element we hovered on to use below.
    $('.rollover').each(function(){  
        var tab = $(this); // $(this) in here is each tab as we go through all of them, not the one we hovered on
        tab.attr('src',tab.attr('src').replace("_on","_off")); // Turn off ALL tabs.
    }
    hovered.attr('src',hovered.attr('src').replace("_off","_on")); // Turn on the tab we hovered on
},function(){ return false; });

当您悬停时,下面的选项将用“开”替换“关”,当您不悬停时,下面的选项将用“关”替换“开”

如果您将鼠标悬停在另一个选项卡上,请禁用默认设置;如果您未悬停,则默认设置将启用

$('.rollover').not('#defaultTab').hover(function(){
    $(this).attr('src',$(this).attr('src').replace("_off","_on"));
    $('#defaultTab').attr('src',$('#defaultTab').attr('src').replace("_on","_off"));
},function(){
    $(this).attr('src',$(this).attr('src').replace("_on","_off"));
    $('#defaultTab').attr('src',$('#defaultTab').attr('src').replace("_off","_on"));
});
如果希望有人悬停的最后一个项目保持“打开”状态,而不是默认的“打开”,则可以使用此选项:

$('.rollover').hover(function(){
    var hovered = $(this); // save the element we hovered on to use below.
    $('.rollover').each(function(){  
        var tab = $(this); // $(this) in here is each tab as we go through all of them, not the one we hovered on
        tab.attr('src',tab.attr('src').replace("_on","_off")); // Turn off ALL tabs.
    }
    hovered.attr('src',hovered.attr('src').replace("_off","_on")); // Turn on the tab we hovered on
},function(){ return false; });


您不能使用
.src
您需要使用
.attr('src',new_href)
您不能使用
.src
您需要使用
.attr('src',new_href)
我从控制台收到一个错误,没有定义src。src应该在引号中(字符串文字)当我将鼠标悬停在该选项卡上时,这将关闭该选项卡,但如果任何其他按钮悬停在该选项卡上,我需要关闭id为defaultTab的选项卡。更新的答案。如果您将鼠标悬停在任何其他按钮上,这将关闭默认选项卡。如果您不悬停在任何按钮上,则默认选项卡将打开。这是您的意思吗?我想使用第二个按钮,但我是rec接收到语法错误。底部的空函数中应该有其他内容吗?我从控制台收到一个错误,没有定义src。src应该在引号中(字符串文字)当我将鼠标悬停在该选项卡上时,这将关闭该选项卡,但如果任何其他按钮悬停在该选项卡上,我需要关闭id为defaultTab的选项卡。更新的答案。如果您将鼠标悬停在任何其他按钮上,这将关闭默认选项卡。如果您不悬停在任何按钮上,则默认选项卡将打开。这是您的意思吗?我想使用第二个按钮,但我是rec接收到语法错误。底部的空函数中应该有其他内容吗?他在DOM元素上调用.src,而不是jQuery元素,因此.src是正确的。他在DOM元素上调用.src,而不是jQuery元素,因此.src是正确的。当页面加载时,Defaulttab会自动高亮显示。如果有,我只希望它关闭其他内容处于悬停状态。我已将代码设置为基于悬停关闭和打开图像状态。加载页面时,默认选项卡将自动突出显示。我只希望在其他内容处于悬停状态时将其关闭。我已将代码设置为基于悬停关闭和打开图像状态。这将关闭任何内容我在上。我已经有了这个功能。我需要它指向任何东西。src defaultTab来自哪里。我没有真正理解它…
defaultTab
是其中的一个图像。现在你发布了你的代码和HTML,看起来你在关注我发布的第一个代码片段。只有元素ID为
defaultTab…如果这对您没有帮助,那么您必须更好地解释您的问题。好的,没问题。我有7个按钮。当您加载页面时,其中一个按钮已经在“on”上默认状态。现在,当我将鼠标悬停在它上面时,它将关闭。当我将鼠标悬停在其他按钮上时,它们将打开。我的问题是,如果我不将鼠标悬停在默认按钮上,它将不会关闭。因此,如果用户选择将鼠标悬停在另一个按钮上而不是已经打开的按钮上,两个按钮将被高亮显示。我需要某种帮助如果选择了“打开”按钮旁边的任何其他按钮,该功能将告诉“打开”按钮关闭。希望这更清晰。thanks@LaToyaLecator:感谢您的澄清。请查看我的更新。代码不起作用,但它给了我一个语法错误。我正在调试,但我不确定失败的原因。这将关闭我正在运行的任何按钮n、 我已经有了这个功能。我需要让它指向任何.src defaultTab出现的地方