我想通过以下单击绑定方法传递特定上下文:
$(document).ready(function(){
var o = {
name : 'I\'m object O'
};
$('#my-button').click(function(){
alert(this.name);
}.call(o));
});
问题是,只要页面加载就会触发此操作。有没有办法可以将上下文绑定到click处理程序的匿名函数,并且只有在触发click事件时才触发它?你也可以解释为什么它是在页面加载而不是点击事件上触发的。
答案 0 :(得分:7)
使用$.proxy
$("#my-button").click($.proxy(function () {
alert(this.name);
}, o));
答案 1 :(得分:1)
它无效,因为您在声明时调用此匿名函数。试试这个:
$(document).ready(function(){
var o = {
name : 'I\'m object O'
};
$('#my-button').click(function(){
function(){
alert(this.name);
}.call(o)
});
/*
* Or shorter:
* $('#my-button').click(function(){
* alert(o.name);
* });
*/
});
答案 2 :(得分:0)
(文档)$ .mousedown(函数(E){
//做东西
}