jQuery .toggle()替代?

时间:2014-07-04 02:24:01

标签: javascript jquery html

最近,jQuery删除了.toggle(),我不知道如何在按钮内切换文本。是的,我已经在这个论坛上寻找答案,但没有一个是足够的。

这是我的代码:

$("#show").click(function () {
if($(this).text() == "Show") {
    $(this).text() == "Hide";
    alert("Fill fields");
} else {
    $(this).text() == "Show";
    alert("Clear fields");
}
});

说明:

  • 单击#show时,执行匿名函数。
  • 如果文字为"显示",则更改为"隐藏"
  • 然后,提醒"填写字段"
  • 否则,将文字更改为"显示"
  • 提示"清除字段"

fiddle

3 个答案:

答案 0 :(得分:3)

.text()的设定者是这样的:

$(selector).text('text here') // this is setter

而不是

$(selector).text() == 'text here'; // this is comparison

如此完整的代码:

$("#show").click(function () {
    if($(this).text() == "Show") {
        $(this).text("Hide");
        alert("Fill fields");
    } else {
        $(this).text("Show");
        alert("Clear fields");
    }
});

DEMO

如果您愿意,可以使用三元运算符缩短它:

$('#show').click(function(){
   $(this).text(function(_, text) { return text == 'Show' ? 'Hide' : 'Show'; });    
});

答案 1 :(得分:0)

您很可能正在寻找切换事件替代方案;你可以将n个函数传递给它,它们会在你点击时连续被触发。

检查jquery-toggleclick.js。 toggleClick jQuery插件就是这么做的。

<强>用法

$("#show").toggleClick(fillFields, clearFields);

然后您可以在相应的功能中设置文本

答案 2 :(得分:-3)

我检查了jquery文档。切换仍在那里。 http://api.jquery.com/toggle/