gpt4 book ai didi

javascript - 新调用时不重置默认操作

转载 作者:行者123 更新时间:2023-11-28 07:49:17 24 4
gpt4 key购买 nike

我在 JavaScript 中遇到了一些 Preventdefault 问题,特别是 jQuery。我正在尝试获取一个模态框来显示“.confirm”类的元素,该框有效地覆盖了与用户确认的默认操作(如果他们确定要在继续执行该操作之前执行该操作)做。

$('.confirm').on('click', function(event, options)
{
options = options || {};

if (!options.confirmed)
{
vex.dialog.confirm({
message: 'Are you sure that you want to perform this action?',
callback: function(response) {
if (response === true) {
$(event.target).trigger('click', {confirmed: response});
}
}
});

event.preventDefault();
}

});

流程

  • 显示模式对话框。
  • 如果用户确认操作,则会再次触发 click 事件,只有这一次确认才会传递回事件处理程序。
  • 这将跳过检查并继续执行默认操作。

问题

但事实并非如此,因为默认操作似乎会覆盖任何 future 发生的调用。

尝试

  • 取消/重新绑定(bind) - 需要用户再次单击它才能生效。
  • window.location(并不理想,因为它假设该操作是链接但有效)
  • 确认(与美观不太相符,因此需要更好的解决方案)

注释

  • 需要异步。

任何帮助都会很棒,因为它暂时让我陷入困境

最佳答案

尝试在回调中使用 $('.confirm').off() 删除点击处理程序。这样,当您以编程方式触发点击时,您的点击处理程序就会被调用。

关于javascript - 新调用时不重置默认操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27051685/

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