gpt4 book ai didi

Javascript 伪类、jQuery 事件处理程序和 'this'

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:27:59 24 4
gpt4 key购买 nike

我有一个大型 Javascript 项目,我正试图将其重构为伪类:

jsFiddle:http://jsfiddle.net/waitinforatrain/7T42w/

var MyNameSpace = {}

MyNameSpace.MyClass = function() {
this.doSomething = function () {
return "hello";
}

this.doSomething2 = function() {
var x = this.doSomething() + " world";
alert(x);
}

this.doSomething2(); //Works fine

$("#mydiv").click ( this.doSomething2 ); //Doesn't work
}

var class = new MyNameSpace.MyClass();

点击事件导致错误的原因是this引用了#mydiv元素。

我应该如何设计上面的内容,以便我可以访问被单击的元素,但也可以调用 doSomething()

最佳答案

您需要缓存上下文引用并将调用包装在闭包中:

var MyNameSpace = {}

MyNameSpace.MyClass = function() {
var context = this;

context.doSomething = function () {
return "hello";
}

context.doSomething2 = function() {
var x = context.doSomething() + " world";
alert(x);
}

// You can do this:
context.doSomething2();

// Or this:
$("#mydiv").click(function(e) {
context.doSomething2();
});
}

关于Javascript 伪类、jQuery 事件处理程序和 'this',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5736274/

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