Javascript 使用Jquery更改图像源

Javascript 使用Jquery更改图像源,javascript,jquery,Javascript,Jquery,使用Jquery,我成功地通过单击按钮创建了一个下拉式登录表单。然而,我也试图通过替换src图像来改变它旁边箭头的方向,但它似乎什么也不做 $("#login_panel").slideToggle(200).toggle( function() { $("#arrow").attr('src', '/src/east.gif';) }, function() { $("#arrow").attr('src', '/src/south.gif';) } ); 这可以在以下位置看

使用Jquery,我成功地通过单击按钮创建了一个下拉式登录表单。然而,我也试图通过替换src图像来改变它旁边箭头的方向,但它似乎什么也不做

$("#login_panel").slideToggle(200).toggle(
    function() { $("#arrow").attr('src', '/src/east.gif';) },
    function() { $("#arrow").attr('src', '/src/south.gif';) }
);
这可以在以下位置看到:
(登录按钮)


$(文档).ready(函数(){
$(“登录”面板)。滑动切换(200)。切换(
函数(){$(“#arrow”).attr('src','/src/east.gif';)},
函数(){$(“#arrow”).attr('src','/src/south.gif';)}
);
对于(变量i=0;i<2;i++){
$(“.mod”).clone().insertAfter(“.mod”);
}
$(“.mod”).lazyload({
效果:“法丹”
});
});
您在处理函数中省略了“#”。通过引用“arrow”,您告诉jQuery查找(可能不存在)
标记

现在,对于更大的情况,你所设置的东西会在点击图像时改变图像。你对目标的描述让我觉得这不是你想要的,但很难说。如果希望其他元素控制对图像的更改,则应将处理程序附加到其他位置

您想更改登录按钮旁边的黑色小箭头吗?如果是这样,那么应该做的是将设置映像的代码添加到上下滑动登录表单的现有处理程序中。(顺便说一句,在Chrome中,登录框显示在按钮左侧的一个奇怪的地方。)

您在处理函数中省略了“#”。通过引用“arrow”,您告诉jQuery查找(可能不存在)
标记

现在,对于更大的情况,你所设置的东西会在点击图像时改变图像。你对目标的描述让我觉得这不是你想要的,但很难说。如果希望其他元素控制对图像的更改,则应将处理程序附加到其他位置

您想更改登录按钮旁边的黑色小箭头吗?如果是这样,那么应该做的是将设置映像的代码添加到上下滑动登录表单的现有处理程序中。(顺便说一句,在Chrome中,登录框显示在按钮左侧的一个奇怪的地方。)

$(“箭头”)
将匹配
不使用两个函数作为参数,它的工作方式与您尝试使用它的方式完全不同。是的,确实如此,jQuery有两种不同的方式(插入关于糟糕的API设计的言论)

现在您已经完全编辑了代码

您的代码现在立即将字符串分配给
this.src
(其中
this
是(我认为)文档
对象),然后将这两个字符串作为参数传递给toggle方法(这是不可接受的参数)

现在您又完全编辑了它…

$(“箭头”)
将匹配
不使用两个函数作为参数,它的工作方式与您尝试使用它的方式完全不同。是的,确实如此,jQuery有两种不同的方式(插入关于糟糕的API设计的言论)

现在您已经完全编辑了代码

您的代码现在立即将字符串分配给
this.src
(其中
this
是(我认为)文档
对象),然后将这两个字符串作为参数传递给toggle方法(这是不可接受的参数)


现在您又完全编辑了它…

看起来您忘了在$(“arrow”)中的箭头前面加上#

应该是这样的

 $("#arrow").toggle(
            function(){$("#arrow").attr("src", "/src/south.gif");},
            function(){$("#arrow").attr("src", "/src/east.gif");}
        );

看起来你忘了在$(“arrow”)中把#放在箭头前面

应该是这样的

 $("#arrow").toggle(
            function(){$("#arrow").attr("src", "/src/south.gif");},
            function(){$("#arrow").attr("src", "/src/east.gif");}
        );

您可以直接访问
this.src
——无需为此创建新的jQuery对象:

$('#arrow').toggle(
    function() { this.src = '/src/south.gif'; },
    function() { this.src = '/src/east.gif'; }
);

如果您希望通过
.attr()
执行此操作,请至少使用
$(this)
(干式-不要重复自己的操作-在这种情况下,不要频繁指定选择器)

您可以直接访问
this.src
-无需为此创建新的jQuery对象:

$('#arrow').toggle(
    function() { this.src = '/src/south.gif'; },
    function() { this.src = '/src/east.gif'; }
);
如果您希望通过
.attr()
执行此操作,请至少使用
$(此)
(干式-不要重复-在这种情况下,不要频繁指定选择器)

此代码应该可以:

$('#login_button').click(function() {
    $(this).find('#arrow').attr('src', function(i, v) {
        return v.indexOf('east.gif') < 0 ? '/src/east.gif' : '/src/south.gif';
    });

    $('#login_panel').slideToggle(200);
});
$('#登录按钮')。单击(函数(){
$(this).find('#arrow').attr('src',function(i,v){
返回v.indexOf('east.gif')<0?'/src/east.gif':'/src/south.gif';
});
$('login#u panel')。滑动切换(200);
});
此代码应适用于:

$('#login_button').click(function() {
    $(this).find('#arrow').attr('src', function(i, v) {
        return v.indexOf('east.gif') < 0 ? '/src/east.gif' : '/src/south.gif';
    });

    $('#login_panel').slideToggle(200);
});
$('#登录按钮')。单击(函数(){
$(this).find('#arrow').attr('src',function(i,v){
返回v.indexOf('east.gif')<0?'/src/east.gif':'/src/south.gif';
});
$('login#u panel')。滑动切换(200);
});

眼力不错,但我已经修好了,仍然不起作用。我其余的语法正确吗?是的,我的定位有问题。我真的不知道如何保持它在一个地方与液体布局。我也试过了,但不知怎的,我还是做错了:(我实际上没有编辑源代码!谢谢你的帮助,这很有效。我的眼睛很好,但我已经修复了它,但它仍然不起作用。我的其余语法正确吗?是的,我在定位方面遇到了问题。我不确定如何用液体布局将它保持在一个位置。我也尝试过,但不知怎么,我还是做错了:(我没有真正编辑源代码!谢谢你的帮助,这很有效。很高兴知道,我可以在自定义标记中使用它。不要在HTML文档中使用自定义标记。注意。现在我想w3c验证程序会很适合。很高兴知道,我可以在自定义标记中使用它。不要在HTML文档中使用自定义标记。注意。w3c验证程序我会大发雷霆的,既然我