javascript - 展开和折叠元素以及从 JavaScript 中删除静态文本

标签 javascript jquery html css ruby-on-rails

我有以下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/

最佳答案

首先,我建议你的 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/

希望对您有所帮助。

关于javascript - 展开和折叠元素以及从 JavaScript 中删除静态文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15253716/

相关文章:

javascript - React如何更新状态?

php - 使用 jQuery 发送 Get(带空格)

javascript - 我们可以通过在控制台中编写循环来多次提交表单吗?

php - 我无法使用 php 将数据输入数据库

javascript - Bootstrap 3 carousel 滑动时在下方滑动的白色背景

html - HTML 和 CSS 文档的屏幕与打印行为

javascript - 删除逗号分隔的字符串并将其替换为 javascript 正则表达式

javascript - 我想在我的 WordPress 网站中使用 counterup.js 但它显示错误

jquery - z-index 悬停在不工作

html - 在菜单中使用 Unicode 字符而不是图形