【问题标题】:jquery icheck callback - which one was clickedjquery icheck 回调 - 点击了哪一个
【发布时间】:2015-01-28 21:13:43
【问题描述】:

我正在使用iCheck jQuery library,但似乎无法找到一种方法来检测事件与哪个元素相关。设置任何回调总是返回每个元素,而不仅仅是我点击的那个。我需要找到切换的元素,而不是所有元素。

$("input").on('ifToggled', function(e){
  console.log(this); //returns all 3 checkboxes below
  console.log(e.currentTarget); //returns all 3 checkboxes below
  console.log(e.target); //returns all 3 checkboxes below
});

<input type="checkbox" class="icheck" name="exercise[27][save_as_default]" style="position: absolute; opacity: 0;" value="1">
<input type="checkbox" class="icheck" name="exercise[498][save_as_default]" style="position: absolute; opacity: 0;" value="1">
<input type="checkbox" class="icheck" name="exercise[240][save_as_default]" style="position: absolute; opacity: 0;" value="1">

【问题讨论】:

  • 可以试试ifChanged,jquery也可以检测到状态变化,不知道为什么要使用lib的方法
  • 原生 jQuery 没有检测到它,因为 iCheck 中的复选框本身不是一个复选框(它是一个带有背景图像的 div,看起来像一个复选框)。使用该库基本上可以使复选框的外观在不同的浏览器和平台上保持一致。
  • 对,贴出生成的代码可能更有用
  • 哈,这很愚蠢,但我必须给元素一个 ID。之后,它按预期工作。
  • 可能在他们的文档中。当我扫描它时,我没有看到任何提及

标签: javascript jquery icheck


【解决方案1】:

一旦我为复选框元素提供了唯一的 ID,它就起作用了。

【讨论】:

    【解决方案2】:

    您也可以使用类名代替“输入”。

    $('.icheck').on('ifToggled', function () {
          if ($(this).prop("checked")) {
              console.log($(this).val());
          }   
     })
    

    【讨论】:

      【解决方案3】:

      你可以在没有任何外部库的情况下做到这一点

      $(".icheck").on('change', function(){
          console.log(this.name);
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-14
        • 1970-01-01
        • 1970-01-01
        • 2015-10-26
        相关资源
        最近更新 更多