我正在定义函数func1(); 我希望它采取一些参数,即
var func1(aaa, bbb){
//do something, anything!
};
Run Code Online (Sandbox Code Playgroud)
那么我想稍后在doc中调用它:
$('#some_id').click(func1($this));
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我已经搞砸了一段时间,但jquery/javascript至少处理用户定义函数的方式非常奇怪.some1能为我提供简单的代码片段吗?谢谢
如果要传递的只是$(this),则不需要参数,因为它在定义的函数中可用.
$('#some_id').click(func1);
Run Code Online (Sandbox Code Playgroud)
但是,您无法添加如下参数:
$('#some_id').click(func1(param1, param2));
Run Code Online (Sandbox Code Playgroud)
然后,对于您的功能定义,您只需拥有
function func1() { }
Run Code Online (Sandbox Code Playgroud)
如果您确实需要$(this)以外的参数,则需要执行以下操作:
$('#some_id').click(function () {
func1(aaa, bbb); });
Run Code Online (Sandbox Code Playgroud)
我假设您正在尝试确保this仍然引用接收事件的元素.
尝试一下: http ://jsfiddle.net/jKM9s/
$('#some_id').click(function() {
func1.call(this, 'somearg', 'somearg');
});
// now "this" references the element when func1 is called
function func1(aaa, bbb){
//do something, anything!
};
Run Code Online (Sandbox Code Playgroud)
编辑:
如果你想要的只是引用了被点击的元素,那么请参阅@ phoffer的第一个解决方案.