Jquery(切换和放弃)不循环 - 只工作一次

时间:2013-09-05 06:24:36

标签: jquery toggle

http://jsfiddle.net/4KUMv/2/

以下脚本根据div的状态显示不同的背景。

当它没有展开时,会显示“加号(+)”符号,而展开时则没有背景图像(不显示任何内容)。

问题是只能工作一次。

(.mix值使Div扩展,.meta类切换到不同的背景。)

有任何线索吗?

Jquery代码:

$(document).ready(function() {
    $('.meta').click(function() {
      $(this).css('background', 'none');
        });     
          $('.mix').click(function(){
            var collapse_content_selector = $(this).attr('href');
            var toggle= $(this);
            $('.meta').click(function() {
             $(this).css('background', 'url(images/arrow_down.png) no-repeat scroll 95% 97% transparent');
            });                         
            $(collapse_content_selector).toggle(function(){
            });


            $('.meta').click(function() {
      $(this).css('background', 'none');
        });     
          });
        });

谢谢!

1 个答案:

答案 0 :(得分:0)

你的代码看起来很复杂。我想你要找的是:

$('.mix').click(function() {
    var c = $(this).children();
    c.filter('.meta').toggleClass('background');
    c.filter(':last').toggle(function() {});
});

然后,您可以创建一个名为的CSS类,例如background将图像添加到具有类.meta的元素。

<强>解释

单击父元素将始终切换其内容,您可以将事件处理程序附加到此元素$('.mix').click();。 这个元素的子元素总是相同的,所以我选择它们var c = $(this).children();。现在,您要切换“+” - 使用类meta对孩子进行签名。要获取此元素,您可以过滤子项并在结果c.filter('.meta').toggleClass('background');上切换类。最后,您要切换内容。内容始终是最后一个孩子。因此,只需对其进行过滤并应用函数c.filter(':last').toggle(function() {});

<强>演示

Try before buy