jQuery切换只工作一次

时间:2015-08-22 20:23:28

标签: jquery html

我有一系列按钮,class =" flipper",用于切换另一个元素的显示/隐藏和禁用状态。这部分工作没有问题。但是当我尝试切换按钮本身的.text值时,它会在第一次更改,然后处于次要状态并且不会使用。

 $.fn.toggleLabel = function () {
    return this.each(function () {
        var $this = $(this);
        console.log($this.text());
        if ($this.text('Enter your Own')) {
            $this.text('Select from DropDown');
        } else {
            $this.text('Enter your Own');
        }
    });
    };


          $('.flipper').click(function(e){
            e.preventDefault();           
            $(this).nextAll().toggleDisabled();
            $(this).toggleLabel();
          });

我把console.log放在那里检查$ this.text的状态,果然,每次点击按钮时,.text值都是从DropDown'中选择。

为什么toggleLabel函数中的条件不会捕获它,并将值更改回来?

1 个答案:

答案 0 :(得分:1)

您的条件if没有按照您的想法行事。

它实际上每次都将文本设置为'Enter your Own'并返回一个始终是真实的jQuery对象。由于它是真实的,所以将始终调用第一个表达式,将其设置为'Select from DropDown'

更改

if ($this.text('Enter your Own'))

if ($this.text() === 'Enter your Own'))