如果语句循环点击,为什么?

时间:2013-11-08 05:49:27

标签: javascript jquery

我在这里缺少一些非常简单的东西。我有一个非常简单的事件和一个非常简单的处理程序:

$('#toggler').on('click',function(){
      if ($(this).hasClass('choose')) {
          $(this).removeClass('choose');
          $.ui.hint.turnOn();
      }
      else {
          $(this).addClass('choose');
          $.ui.hint.turnOff(); 
      }

    });

当我点击它时,它基本上循环,不断添加和删除类。为什么会发生这种情况,我该如何解决? 感谢。

编辑:html:

        <div id="toggler">
            <a href="#" mode="normal">Вкл.</a>
            <div class="hint-switcher">
                <div class="hint-switcher-toggle"></div>
            </div>
            <a href="#" mode="choose">Выкл.</a>
        </div>

这是一个简单的开关,只使用css来改变它的状态。

2 个答案:

答案 0 :(得分:0)

好的,我发现了问题所在。在我的项目的另一个文件中有一个trigger('click'),我偶然错过了,导致了这个问题。感谢所有帮助过的人,我很感激。

答案 1 :(得分:-2)

我不确定。但是你应该将必要的参数传递给我猜的函数。您正在使用&#39; ui&#39;没有传递它的对象。试一试吧。

$('#toggler').on('click',function(event,ui){
      if ($(this).hasClass('choose')) {
          $(this).removeClass('choose');
          $.ui.hint.turnOn(); // Problem lies in this line i think. if this doesn't work
      }
      else {
          $(this).addClass('choose');
          $.ui.hint.turnOff(); // here too.
      }

    });

如果不起作用,请忽略我的建议。