我正在尝试将函数直接附加到jQuery中的change
事件,但我无法弄明白。我需要将作为参数更改的元素传递给我正在调用的函数。
像这样的东西,(但它不起作用):
var fun = function( trigger ){
// do something
};
$( 'select' ).change( fun( $(this) ) );
以下作品:
$( 'select' ).change( function(){
fun( $(this) );
});
我也试过(只是为了它的地狱)
$( 'select' ).bind( 'change', fun( $(this) ) );
但它也不起作用。
答案 0 :(得分:7)
$('select').change(fun);
会做的伎俩。您可以在this
功能中访问fun
。
以下是一个例子:
var fun = function(){
console.log(this);//output will be the DOM element that had the `change` event fire
};
$( 'select' ).change( fun );
您的第二个解决方案有效,因为您作为事件处理程序传递的匿名函数可以访问this
变量,然后您将其传递给fun
函数。传递给jQuery事件处理程序的任何函数都将收到this
变量,该变量存储对其上发生事件的DOM元素的引用。