Javascript 在事件触发器中将参数传递给函数调用
现在我有这个Javascript 在事件触发器中将参数传递给函数调用,javascript,jquery,Javascript,Jquery,现在我有这个 jQuery('.widget-prop').keyup(function() { var prop = jQuery(this).attr('id'); var val = jQuery(this).val(); stuff; } 及 这两个函数是相同的,所以我想通过定义外部函数并使用 jQuery('.widget-prop').click('myFunction'); 但是如何将参数传递给myFunction呢 function myFuncti
jQuery('.widget-prop').keyup(function() {
var prop = jQuery(this).attr('id');
var val = jQuery(this).val();
stuff;
}
及
这两个函数是相同的,所以我想通过定义外部函数并使用
jQuery('.widget-prop').click('myFunction');
但是如何将参数传递给myFunction呢
function myFunction(element) {
stuff;
}
谢谢别再引用那些话了
jQuery('.widget-prop').click(myFunction);
摆脱那些引用
jQuery('.widget-prop').click(myFunction);
首先,您可以将两个处理程序合并为一个:
jQuery('.widget-prop').on('click keyup', function() {
var prop = jQuery(this).attr('id');
var val = jQuery(this).val();
// stuff;
});
或者对于较旧版本的jQuery:
jQuery('.widget-prop').bind('click keyup', function() { // ... });
其次,jQuery将自动将当前元素应用于您提供的任何函数,因此执行此操作时,this
关键字仍将是引发事件的元素:
jQuery('.widget-prop').on('click keyup', myHandler);
function myHandler() {
var prop = jQuery(this).attr('id');
var val = jQuery(this).val();
// stuff;
}
首先,您可以将两个处理程序合并为一个:
jQuery('.widget-prop').on('click keyup', function() {
var prop = jQuery(this).attr('id');
var val = jQuery(this).val();
// stuff;
});
或者对于较旧版本的jQuery:
jQuery('.widget-prop').bind('click keyup', function() { // ... });
其次,jQuery将自动将当前元素应用于您提供的任何函数,因此执行此操作时,this
关键字仍将是引发事件的元素:
jQuery('.widget-prop').on('click keyup', myHandler);
function myHandler() {
var prop = jQuery(this).attr('id');
var val = jQuery(this).val();
// stuff;
}
在
MyFunction
的上下文中,这是您单击的元素。此外,click
处理程序接受1个参数,因此您的函数签名应该是function myfunction(event)
,其中事件参数保存有关操作的数据(例如,event.target
是单击的元素)
这就是您定义处理程序的方式:
function myFunction(event){
var element = event.target;
// Note: event.target == this
//do stuff
}
以下是您将其绑定到事件的方式:
$(".widget-prop").click(myFunction);
在MyFunction
的上下文中,这是您单击的元素。此外,click
处理程序接受1个参数,因此您的函数签名应该是function myfunction(event)
,其中事件参数保存有关操作的数据(例如,event.target
是单击的元素)
这就是您定义处理程序的方式:
function myFunction(event){
var element = event.target;
// Note: event.target == this
//do stuff
}
以下是您将其绑定到事件的方式:
$(".widget-prop").click(myFunction);
使用.on
功能而不是快捷方式。单击,并将所有必需的事件作为参数传递:
jQuery('.widget-prop').on('click keyup', function() {
var prop = jQuery(this).attr('id');
var val = jQuery(this).val();
//stuff;
});
编辑:弃用=>快捷方式使用
上的
功能而不是快捷方式
。单击
并将所有必需的事件作为参数传递:
jQuery('.widget-prop').on('click keyup', function() {
var prop = jQuery(this).attr('id');
var val = jQuery(this).val();
//stuff;
});
EDIT:deprecated=>shortcut谁说
click()
不推荐使用?没错,它不是不推荐使用的,而是一个快捷功能。对不起,是我的错。谁说click()
不推荐使用?没错,它不是不推荐使用的,而是一个快捷功能。对不起,是我的错。那么如何将两个参数传递给这个函数呢?如果您有多个函数,那么只需编写匿名函数并在内部调用它们<代码>。单击(函数(){myFunction1();myFunction2();})代码>以及如何将两个参数传递给此函数?如果有多个函数,则只需编写匿名函数并在内部调用它们<代码>。单击(函数(){myFunction1();myFunction2();})代码>