【问题标题】:JQuery events firing once on load and not againJQuery 事件在加载时触发一次,而不是再次触发
【发布时间】:2012-08-02 17:26:41
【问题描述】:

我想要实现的是在输入字段更改时执行一些代码。

一些上下文...表单的页面是使用 iframe 在灯箱(颜色框)中加载的。

我遇到了两个问题:

  1. 表单加载时会触发更改事件。它不应该——它应该只在字段改变时触发。如果我使用其他事件(例如焦点或单击),也会发生同样的事情。如果我使用 go、live 或 bind,也会发生这种情况。
  2. 更改事件(或焦点、单击等)不会在事件实际发生时触发。

文档就绪和加载事件都会出现这两个问题。

出于故障排除的目的,我插入了一行将值放入表单域。效果很好。

代码示例如下:

$(document).ready(function(){
  $("#inputfield").change(alert("field changed"));
}

原则上这应该可行,所以我假设页面上还有其他影响它的东西,但我已经没有地方可以查看了。事件委托是一种解决方案吗?我不知道它在这里如何应用。

【问题讨论】:

    标签: jquery


    【解决方案1】:

    在您的代码中,您调用函数change 并返回函数alert。所以它调用alert 函数,它返回undefined,你调用change(undefined)。这样,您根本不会绑定事件。您应该将函数设置为参数:

    $(document).ready(function(){
      $("#inputfield").change(function () { 
        alert("field changed"); 
      });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      • 2018-08-09
      • 1970-01-01
      • 1970-01-01
      • 2016-03-14
      相关资源
      最近更新 更多