<div class="cat_list">
    <h6><img src="img_minus" />接线座 - 接头,插头和插口(1件)</h6>
    <div class="goods_list_box" id="sup1_0_0"></div>
    <h6><img src="img_plus" />端子 - 外壳,套(3件)</h6>
    <div class="goods_list_box" id="sup1_0_1"></div>
    <h6><img src="img_plus" />其它(3件)</h6>
    <div class="goods_list_box" id="sup1_0_2"></div>
</div>1)第一个div#sup1_0_0默认展开,并自动加载ajax调用getGoods()。
2)从第二个开始,默认收缩。点击h6 img,<div>展开,并且加载ajax调用getGoods(),
<img src="img_plus" />变成<img src="img_minus" />,
第二次点击h6 img,<div>收缩,<img src="img_minus" />,变回<img src="img_plus" />
3)第二次点击h6 img,<div>展开,但不再重新加载ajax调用。

解决方案 »

  1.   

    那就在ajax之前判断下img的src是否是img_plus  如果是就执行ajax 不是就直接展开就可以了
      

  2.   


    但是缩回去之后,还是会回img_plus的啊。我用了一个蠢方法,就是变回去变成img_plus2...function getGoodsList(site, url, action, categoryid) {
    if ($("#h6_" + categoryid +" img").attr("src") == "images/icon_plus.gif") {
    $("#h6_" + categoryid +" img").attr("src", "images/icon_minus.gif");
    $("#h6_" + categoryid).next(".goods_list_box").show();
    ajax2(site, url, action, categoryid);
    } else if ($("#h6_" + categoryid +" img").attr("src") == "images/icon_plus2.gif") {
    $("#h6_" + categoryid +" img").attr("src", "images/icon_minus.gif");
    $("#h6_" + categoryid).next(".goods_list_box").show();
    } else {
    $("#h6_" + categoryid +" img").attr("src", "images/icon_plus2.gif");
    $("#h6_" + categoryid).next(".goods_list_box").hide();
    }
    }有没有什么好的方法判断不要重载ajax的?
      

  3.   

    给img添加一个属性来标志是否已经加载过了