0

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');
        });     
          });
        });

谢谢!

4

1 回答 1

0

您的代码看起来过于复杂。我认为您正在寻找的是:

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

然后,您可以创建一个名为 eg 的 CSS 类background,将图像添加到带有 class 的元素中.meta

解释

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

演示

先试后买

于 2013-09-05T06:45:27.173 回答