Jquery 如何将事件处理程序绑定到;更改“;JavaScript事件,还是在元素上触发该事件?

Jquery 如何将事件处理程序绑定到;更改“;JavaScript事件,还是在元素上触发该事件?,jquery,Jquery,我不明白如何让更改事件调用函数 $(function () { function foo() { alert("ok"); } //works $('#myElement').change(function() { alert("ok"); }); //does not work $('#myElement').change(foo); //does not work $('#myElement').change(foo()); }

我不明白如何让更改事件调用函数

$(function () {

  function foo() {
    alert("ok");
  }

  //works
  $('#myElement').change(function() {
    alert("ok");
  });

  //does not work
  $('#myElement').change(foo);

  //does not work
  $('#myElement').change(foo());
}

以下所有示例都应该起作用,如果不起作用,则说明您做错了

$(function() {
   function foo(e) {
     alert("ok");
   }
   $('#myElement').change(function(e) {
     alert("ok");
   });
   $('#myElement').change(foo);

   //trigger the event like so:
   $('#myElement').change();
});
这应该起作用:

$('#myElement').change(foo);

在您的代码示例中,缺少一个结束括号。

版本1和版本2适用于我的FF3.6和IE7。由于括号的存在,版本3立即执行。是否可以指定版本2不工作的浏览器。

要将函数绑定到更改事件,请执行以下操作:
$('#id').bind('change',function(){/*code here*/})
并触发事件:

$('#id')。触发器('change')

您是收到错误还是没有活动?@lonesomeday-您没有将代码放入私有范围,如示例所示。你不是在比较同样的事情。@Oded-True。我以为是JSFIDLE为你做的。似乎不是!虽然它确实有效。我所做的只是关闭了
$()
呼叫…@Oded:我也是。工作正常。为什么不呢?谢谢雅各布-你是对的,我做错了什么。一旦我把我的代码带到了问题中所提到的基础知识,它确实起作用了。
$('#myElement').change(foo);