2

我有以下 java 脚本代码来展开和折叠。

$(function () {

   $(document).on('click', '.expandcollapse', function(e) {

     $('.collapse').each(function(index) {
       $(this).collapse("toggle");
     });

     if ($(this).html() == "<i class=\"icon-white icon-plus-sign\"></i> Expand All ") {
        $(this).html("<i class=\"icon-white icon-minus-sign\"></i> Collapse All");
     }
     else {
        $(this).html("<i class=\"icon-white icon-plus-sign\"></i> Expand All");
     } 
    });
});

它在这里工作正常:

http://jsfiddle.net/HqXMN/10/

我需要删除静态文本(展开、折叠)并以某种方式将它们放在我的 html 中。有没有办法根据使用 toggleClass 函数的操作隐藏文本和图标加号或减号。

这是我迄今为止尝试过的,但根本不起作用。

$(function () {

   $(document).on('click', '.expandcollapse', function(e) {

     $(this).removeClass('icon-white icon-minus-sign');
     $('.collapse').each(function(index) {
       $(this).collapse("toggle");
     });

     if ($(this).html() == "<i class=\"icon-white icon-plus-sign\"></i>") {
        $(this).removeClass('icon-white icon-plus-sign');
        $(this).addClass('icon-white icon-minus-sign');
        //$(this).html("<i class=\"icon-white icon-minus-sign\"></i> Collapse All");
     }
     else {
        $(this).addClass('icon-white icon-plus-sign');
        $(this).removeClass('icon-white icon-minus-sign');

     } 
    });
});

这是我的html(我使用的是haml语法)

 %i.icon-white.icon-plus-sign
    Expand All
  %i.icon-white.icon-minus-sign
    Collapse All

更新:这是我尝试过但无法使其工作的更多内容。 http://jsfiddle.net/HqXMN/11/

4

1 回答 1

2

首先,我建议您在 if 语句中使用 jQuery .is()( http://api.jquery.com/is/ ),这样您的代码会更加灵活。那么,我想这toggleClass也对你有用。我没有做太多,但这是一个开始:

JS:

$(function () {
    $(document).on('click', '.expandcollapse', function (e) {

        $('.collapse').each(function (index) {
            $(this).collapse("toggle");
        });

        if ($(this).is('.icon.white-icon .iconplus-sign')) {
            $(this).toggleClass('is-collapsed');
        } else {
            $(this).toggleClass('is-collapsed');

        }
    });
});

CSS:

.expandcollapse .icon-plus-sign {
    display:block;
}
.expandcollapse .icon-minus-sign {
    display:none;
}
.is-collapsed .icon-plus-sign {
    display:none;
}
.is-collapsed .icon-minus-sign {
    display:block;
}

在这里演示:http: //jsfiddle.net/pavloschris/HqXMN/13/

我希望它有所帮助。

于 2013-03-06T17:29:53.740 回答