Javascript 图像在单击时返回到原始源?

Javascript 图像在单击时返回到原始源?,javascript,jquery,html,accordion,Javascript,Jquery,Html,Accordion,我在jQuery/JavaScript中设置了扩展和折叠系统。单击DIV后,DIV内的图像将更改其状态。但是,当您再次单击该DIV时,图像不会返回其原始状态。它被困在它的替代状态 注意:我在同一页面上的多个实例中使用了脚本来创建手风琴效果,当您单击不同的“项目”时,图像将返回到先前选择的DIV的原始状态 以下是JSFIDLE: 非常感谢你 它卡在备用状态的原因是这一行: jQuery(this).find('img').attr('src','http://www.jornal.us/icons

我在jQuery/JavaScript中设置了扩展和折叠系统。单击DIV后,DIV内的图像将更改其状态。但是,当您再次单击该DIV时,图像不会返回其原始状态。它被困在它的替代状态

注意:我在同一页面上的多个实例中使用了脚本来创建手风琴效果,当您单击不同的“项目”时,图像将返回到先前选择的DIV的原始状态

以下是JSFIDLE:


非常感谢你

它卡在备用状态的原因是这一行:

jQuery(this).find('img').attr('src','http://www.jornal.us/icons/expandIcon.jpg');

无论它处于何种状态,这都是影响图像源代码的最终代码。因此,震源始终设置为该行中指定的值。

它卡在备用状态的原因是这一行:

jQuery(this).find('img').attr('src','http://www.jornal.us/icons/expandIcon.jpg');

无论它处于何种状态,这都是影响图像源代码的最终代码。因此,源始终设置为该行中指定的内容。

您可以监视内容的可见性,以确定应显示哪个图标


您可以监视内容的可见性,以确定应显示哪个图标


我为图像标记添加了一个自定义attr
isExpanded
,以便在图像标记展开或折叠时保存,并检查该值以查找其状态

这里

jQuery('.item.expandacc')。单击(函数(){
jQuery(this).sides('.contentacc').slideToggle('normal')


我为图像标记添加了一个自定义attr
isExpanded
,以便在图像标记展开或折叠时保存,并检查该值以查找其状态

这里

jQuery('.item.expandacc')。单击(函数(){
jQuery(this).sides('.contentacc').slideToggle('normal')


使用css将图像放置在
h1
标记的背景中。然后您可以从
切换项目的类别。打开
。关闭
,然后让css处理图像的更改

jQuery('.item .expandacc').click(function() {
    jQuery('.item .expandacc').not(this).removeClass("open").addClass("closed")
        .siblings('.contentacc').slideUp('normal');
    jQuery(this).next('.contentacc').slideToggle('normal');
    jQuery( this ).toggleClass("closed").toggleClass("open");
});

使用css将图像放置在
h1
标记的背景中。然后,您可以从
切换项目的类别。打开
。关闭
,然后让css处理图像的更改

jQuery('.item .expandacc').click(function() {
    jQuery('.item .expandacc').not(this).removeClass("open").addClass("closed")
        .siblings('.contentacc').slideUp('normal');
    jQuery(this).next('.contentacc').slideToggle('normal');
    jQuery( this ).toggleClass("closed").toggleClass("open");
});

只是对代码的一个注释,如果您将
jQuery
替换为
$
,您可能会发现阅读起来更容易。至少对我来说,这更容易理解(做了很多jQuery,实际上看到这些词会让我分心)。@Kekoa:如果我用美元符号($)开始所有jQuery语句,则冲突发生和错误的空间要大得多。我建议在每条语句之前使用jQuery。除非加载另一个库,例如同样使用
$
的prototype,否则应该不会有冲突。只需对代码进行注释,如果将
jQuery
替换为
$
,您可能会发现更容易阅读至少对我来说更容易理解(已经做了很多jQuery,实际上看到这些词会让我分心)。@Kekoa:如果我所有的jQuery语句都以美元符号($)开头,则冲突发生和错误的空间要大得多。我建议在每个语句之前使用jQuery。除非加载另一个库,例如同样使用
$
的prototype,否则应该没有冲突。那么,您建议我如何解决此问题?在不同的DIV CL之后使图像返回其原始状态选择了ASS,但在选择该类时仍将图像保持在备用状态?谢谢!那么您建议我如何解决此问题?选择其他DIV类后使图像恢复到原始状态,但在选择该类时仍将图像保持在备用状态?谢谢!但使用多个CLAses,如何实现我的拍摄目标?例如:还有,我认为.is(“:可见”)由于幻灯片动画,将始终为真。@AaronBrewer-使用
next
,这样它只检查下一个内容块。@SKS-您在执行slideToggle后检查值。您必须使用我回答中的操作顺序。但是如果有多个类,如何实现我的目标?对于e示例:另外,我认为由于幻灯片动画,.is(“:visible”)将始终为真。@AaronBrewer-使用
next
,这样它只检查下一个内容块。@SKS-您在执行slideToggle后检查值。您必须使用我回答中的操作顺序。