gpt4 book ai didi

jquery - $(this) 和 this 位于点击事件中

转载 作者:行者123 更新时间:2023-12-01 00:40:31 25 4
gpt4 key购买 nike

我有一个自己的js类,并尝试在点击事件中使用jquery的$(this)和object-this。

jquery 的 $(this) 工作正常,但对象-this 未定义。

http://jsfiddle.net/j33Fx/2/

var myclass = function(){

this.myfunction = function(){
alert('myfunction');
}

this.buttonclicked = function(){
alert('buttonclicked');
}

this.writeout = function(){
var buttoncode = '<button class="mybutton">click</button>';
$('body').append(buttoncode);

$('.mybutton').click(function(){
alert('Button: '+$(this).attr('class'));
this.buttonclicked();
});

this.myfunction();
}

}


var x = new myclass();
x.writeout();

当我单击附加按钮时,我收到带有按钮类名的警报,但我的函数“this.buttonclicked”似乎不是一个函数。

有什么想法吗?

最佳答案

this 指的是在事件处理程序中调用事件的元素。您可以将当前对象缓存在其他变量中。后者可以使用。

使用

this.writeout = function(){
var buttoncode = '<button class="mybutton">click</button>';
$('body').append(buttoncode);

var _self = this; //cache current object

$('.mybutton').click(function(){
alert('Button: '+ $(this).attr('class')); //Here this refers to element which invoked the event.

_self.buttonclicked(); //Use cached object
});

this.myfunction();
}

Updated Fiddle

关于jquery - $(this) 和 this 位于点击事件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24736599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com