当先前的输入值发生变化时,如何仅获取当前输入的值?

时间:2017-10-23 14:46:47

标签: javascript jquery twitter-bootstrap

我有一个带手风琴的模态。页面上的每个图像都有一个锚标记,可以打开模态窗口。在模态中,手风琴有滑动开关,用户可以选择打开或关闭该图像的值。

在特定图像上更改一个输入后,会发生意外行为。我收到之前更改的输入值的值。

我希望看到每个图像都有自己的值,即特定于该图像的值。我不应该看到任何其他图像的值。另外,如果我将特定图像的值更改为 是的,我不希望看到任何其他图像的值设置为true。我希望这一切都有道理。我对JavaScript并不十分了解,但我尽力解释。

这就是JavaScript的样子

  $(".glyphicon-tags").on('click', function(){
    var iid = $(this).data('iid'); // this is the imageId

    $(".onoffswitch ").on("click", function(){
      var tid = $(this).data('tid'); // this is the tagId
      alert(iid + ' ' + tid);
    });
  });

1 个答案:

答案 0 :(得分:1)

使用

$(".onoffswitch ").off("click").on("click", function(){

应该修复它。

你现在的方式,每次点击glyphicon标签,你只需继续为“onoffswitch”添加额外的事件处理程序,永远不会删除旧的。下次onoffswitch被点击时,它会运行 all 定义的事件处理程序。在元素上设置事件处理程序不会删除旧的事件处理程序(除非您正在运行IE6或其他东西),它会在现有的处理程序列表中添加一个额外的处理程序。

“off”方法删除元素上先前定义的事件处理程序。有关您可以传递的选项的详细信息,请参阅http://api.jquery.com/off/