在事件上使用 jQuery 时执行 JavaScript 函数
Execute JavaScript function when using jQuery on event
我想在触发on事件时加载一个函数。
我有这个代码,但它不起作用。
function myFunction(data){
alert(data);
}
$(".element").on('keyup', myFunction('a'));
我不想像这样调用函数:
$(".element").on('keyup', function(){
myFunction('a');
});
我该如何完成这项工作?Peter
on
的委托版本允许传递数据以及函数:
$(document).on('keyup', ".element", 'a', myFunction);
function myFunction(e){
alert (e.data);
}
JSFiddle: http://jsfiddle.net/TrueBlueAussie/kqLqvgp9/2/
注意:应该可以使用非委托的on
处理程序传递数据,但它将'a'
参数混淆为选择器,并认为它无论如何都是委托的。
正如nnnnnn
所指出的,如果您不需要委托的事件处理程序,则可以将选择器替换为 null
:
JSfiddle: http://jsfiddle.net/TrueBlueAussie/kqLqvgp9/5/
$('.element').on('keyup', null, 'a', myFunction)
function myFunction(e){
alert (e.data);
}
你可以
这样做:
function myFunction(data){
return function(){
alert(data);
}
}
$(".element").on('keyup', myFunction('a'));
基本上,您将创建一个始终使用数据来调用警报函数的函数。
您也可以轻松重复使用它
$(".element").on('keydown', myFunction('b'));
jQuery 需要一个回调函数。您可以将函数作为参数传递,例如:
function my_fx(data){
console.log(data)
}
$(".elem").on("keyup", my_fx); // data argument will be a jQuery Event object
但是,如果您需要自定义信息,则可以执行如下闭包:
function make_fx(custom_data){
return function(jquery_event){
console.log(custom_data);
}
}
$(".elem").on("keyup", make_fx("foo"));
相关文章:
- 无法在通过jQuery的ajax加载的页面中执行javascript
- 在Safari执行javascript之前对其进行修改
- 如何在执行此特定onclick事件时执行JavaScript函数
- 如何在从浏览缓存加载页面时执行javascript
- 使用Rhino和ASE执行Javascript的区别
- 如何在加载完整页面后严格执行javascript代码
- 在动态加载的对话框中执行Javascript
- 在Sinatra中执行Javascript
- 通过AJAX加载页面并执行javascript和CSS
- 适用于多种浏览器的Selenium-需要能够执行javascript的webDriver
- 如何在seleniumwebdriver中执行javascript提示并等待接受输入
- 在window.open()生成的窗口中执行JavaScript
- AJAX成功回调-执行javascript时出现问题
- 通过指令在控制器中执行javascript函数
- 从React Native Android原生地执行JavaScript代码
- iframe未执行Javascript方法(PHP)
- 执行JavaScript代码,使用selenium webdriver或WatiN从控制台获取日志
- 通过web驱动程序异步执行Javascript
- 如何在长时间执行JavaScript期间显示微调器
- 点击困难时执行javascript函数