Javascript 在JQuery方法中设置匿名函数的“this”上下文
我想通过以下单击绑定方法传递特定上下文:Javascript 在JQuery方法中设置匿名函数的“this”上下文,javascript,jquery,this,jquery-events,Javascript,Jquery,This,Jquery Events,我想通过以下单击绑定方法传递特定上下文: $(document).ready(function(){ var o = { name : 'I\'m object O' }; $('#my-button').click(function(){ alert(this.name); }.call(o)); }); 问题是一旦页面加载,就会触发此操作。是否有一种方法可以将上下文绑定到click处理程序的匿名函数,并仅在触发click事
$(document).ready(function(){
var o = {
name : 'I\'m object O'
};
$('#my-button').click(function(){
alert(this.name);
}.call(o));
});
问题是一旦页面加载,就会触发此操作。是否有一种方法可以将上下文绑定到click处理程序的匿名函数,并仅在触发click事件时触发它?您还可以解释为什么它是在页面加载而不是单击事件时触发的。使用
使用
它不起作用,因为您正在声明此匿名函数时调用它。请尝试以下方法:
$(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);
* });
*/
});
它不起作用,因为您正在声明此匿名函数时调用它。请尝试以下方法:
$(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);
* });
*/
});
$document.mousedown函数{ //做事
}$document.mousedown函数{ //做事
}也感谢您的回答。向上投票,因为它解释了我为什么会出现这个问题,以及如何在香草中绕过它:谢谢你的回答。向上投票,因为它解释了我的问题为什么会发生,以及如何在香草js中绕过它:与问题完全无关。与问题完全无关。