jQuery'如果.change()或.keyup()'

使用jQuery我想在运行.change().keyup()时引发一个函数。

像这样的东西。

 if ( jQuery(':input').change() || jQuery(':input').keyup() ) { alert( 'something happened!' ); } 

编辑

对不起,我忘了提。 .change().keyup()需要一些variables在范围内。

你可以绑定到多个事件,用空格分隔它们:

 $(":input").bind("keyup change", function(e) { // do stuff! }) 

文档在这里 。

希望有所帮助。 干杯!

如果您是通过AJAXdynamic生成页面内容或加载内容,那么下面的例子就是您应该去的方式:

  1. 在脚本加载多次的情况下,例如在AJAX请求中,它可以防止双重绑定。
  2. 该绑定位于文档body上,因此无论添加,移动,删除和重新添加什么元素,与指定select器匹配的body所有后代都将保留正确的绑定。

代码:

 // Define the element we wish to bind to. var bind_to = ':input'; // Prevent double-binding. $(document.body).off('change', bind_to); // Bind the event to all body descendants matching the "bind_to" selector. $(document.body).on('change keyup', bind_to, function(event) { alert('something happened!'); }); 

请注意! 我使用$.on()$.on() $.off()而不是其他方法,原因如下:

  1. $.live()$.die()已被弃用,并且已经从更新版本的jQuery中被省略。
  2. 我要么需要定义一个单独的函数(因此混淆了全局范围),并分别将函数传递给$.change()$.keyup() ,或者将相同的函数声明传递给每个调用的函数。 复制逻辑…这是绝对不能接受的。
  3. 如果将元素添加到DOM中, $.bind()不会在创build元素时dynamic绑定到元素。 因此,如果绑定到:input ,然后将input添加到DOM,则该绑定方法不会附加到新input。 然后,您需要显式解除绑定,然后重新绑定到DOM中的所有元素(否则最终会绑定被重复)。 每次将input添加到DOM时,都需要重复此过程。

做这个。

 $(function(){ var myFunction = function() { alert("myFunction called"); } jQuery(':input').change(myFunction).keyup(myFunction); }); 

您可以订阅更改和关键事件:

 $(function() { $(':input').change(myFunction).keyup(myFunction); }); 

myFunction是你想要执行的function:

 function myFunction() { alert( 'something happened!' ); } 

事实并非如此。 相反,你给他们一个函数,当他们发生时被调用。

 $("input").change(function() { alert("Something happened!"); }); 

写一个函数,并为它们调用它。

 function yourHandler(e){ alert( 'something happened!' ); } jQuery(':input').change(yourHandler).keyup(yourHandler); 

change()和keyup()事件注册函数返回原始的集合,所以它们可以被链接。