我的JQuery映像替换脚本不工作

我的JQuery映像替换脚本不工作,jquery,Jquery,我有一页Div,我将每个其他Div标识为标题,即class=HeaderOn或class=HeaderOff,以指定标题是绿色打开还是灰色关闭 因为我在Class=HeaderOff的Div之后隐藏了任何Div的所有Div内容,所以我想在该Div的文本前面放一个+图标,在HeaderOn Div文本前面放一个-图标 我使用这个jquery来实现这一点,它工作得非常好 $("div .HeaderOff").prepend("<img src='Images/Expand.jpg' alig

我有一页Div,我将每个其他Div标识为标题,即class=HeaderOn或class=HeaderOff,以指定标题是绿色打开还是灰色关闭

因为我在Class=HeaderOff的Div之后隐藏了任何Div的所有Div内容,所以我想在该Div的文本前面放一个+图标,在HeaderOn Div文本前面放一个-图标

我使用这个jquery来实现这一点,它工作得非常好

$("div .HeaderOff").prepend("<img src='Images/Expand.jpg' align='absbottom' />");
$("div .HeaderOn").not(':first').prepend("<img src='Images/Collapse.jpg' align='absbottom' />");
此脚本旨在将单击函数绑定到所有标题Div,如果单击标题,它将隐藏或显示下一个同级Div的内容。此部分工作正常。下一部分不起作用。它应该检查下一个同级Div的可见状态,如果可见,则将+图标更改为-图标,如果不可见,则将-con更改为+图标。同样,这部分不起作用。我不知道为什么。它将把它从a+改为a-,但不会从a-改为a+

以下是整个文档就绪功能:

<script type="text/javascript">
$("document").ready(function() {
    $("div .HeaderOff").prepend("<img src='Images/Expand.jpg' align='absbottom' />");
    $("div .HeaderOn").not(':first').prepend("<img src='Images/Collapse.jpg' align='absbottom' />");
    $("#ResponseMessage").toggle();
    $(".DatePicker").datepicker({ dateFormat: "yy-mm-dd" });
    $("div [id$='Header']").click( function () {
        $(this).next('div').toggle('slow');
        if ($(this).next('div').is(':visible')) {
            $(this).children('img').attr('src', 'Images/Collapse.jpg');
        } else {
            $(this).children('img').attr('src', 'Images/Expand.jpg');
        }
    });

    $("#PartNumber").on ("keyup",  function (evt) {
        $("#ResponseMessage").text('KeyUp Updated').toggle().delay(500).toggle('slow');
    });

    $(".OnChange").on ("change",  function (evt) {
        $("#ResponseMessage").text('Change Updated').toggle().delay(500).toggle('slow');
    });

});

</script>
以及Div结构的示例:

<div id="InventoryPhotosHeader" class="HeaderOff">
Photos
</div>
<div id="InventoryPhotos">

</div>
<div id="CrossSellHeader" class="HeaderOff">
CrossSells
</div>
<div id="CrossSell">

</div>
任何帮助都将不胜感激,我一直在努力解决这个问题

$(this).next('div').toggle('slow');
这使它慢慢地从可见变为不可见。因为它是第一个,所以当您检查$this.next'div'.is':visible'时,它将始终可见,无论其不透明度是.01%还是99.99%。您应该在检查发生后将其移动到

    if ($(this).next('div').is(':visible')) {
        $(this).children('img').attr('src', 'Images/Collapse.jpg');
    } else {
        $(this).children('img').attr('src', 'Images/Expand.jpg');
    }
     $(this).next('div').toggle('slow');
你能做一把小提琴吗。。。读到你的问题我很困惑实际上。。。
    if ($(this).next('div').is(':visible')) {
        $(this).children('img').attr('src', 'Images/Collapse.jpg');
    } else {
        $(this).children('img').attr('src', 'Images/Expand.jpg');
    }
     $(this).next('div').toggle('slow');