gpt4 book ai didi

javascript - 在 .on() 事件处理程序之前添加确认对话检查

转载 作者:行者123 更新时间:2023-12-01 03:11:03 27 4
gpt4 key购买 nike

我试图在 jquery 中的 .on("click") 事件执行处理程序之前添加确认对话检查。这是原文:

$(this.var_mainSelector).on("click",
this.var_acceptOfferSelector,
this.onAcceptOffer
);

我已经尝试过:

$(this.var_mainSelector).on("click", this.var_acceptOfferSelector, 
function() {
var test = confirm("are u sure?");
if(test) {
this.onAcceptOffer
}
}

提前致谢!

最佳答案

几乎;)闭包本身定义了一个新的“this”,因此不再定义this.onAcceptOffer

解决方案

1)将其保存在 self 中

var self = this;
$(this.var_mainSelector).on("click", this.var_acceptOfferSelector, function(evt) {
var test = confirm("are u sure?");
if(test) {
self.onAcceptOffer.call(this, evt);
}
});

2) 不要使用函数。而是使用 ()=>

$(this.var_mainSelector).on("click", this.var_acceptOfferSelector, (evt)=>{
var test = confirm("are u sure?");
if(test) {
this.onAcceptOffer.call(null, evt); // original "this" (the clicked element) is lost
}
});

箭头函数(“()=>”)不会更改函数的上下文

关于javascript - 在 .on() 事件处理程序之前添加确认对话检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45852048/

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