gpt4 book ai didi

点击 JavaScript/jQuery,确认触发两次

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:42:02 25 4
gpt4 key购买 nike

问题自行解决...

仅供引用:显然 Mac OS 或 Chromium 引擎错误,因为在上次系统和浏览器更新后问题消失得和以前一样突然.看起来它与 jQuery 或 JavaScript API 相关。

我会保留这个问题几天,稍后我会删除它,因为在这种情况下它不符合 StackOverflow 规则。


原帖:

我在点击监听器中有简单的 JS 确认,就像下面的代码一样,没有更多的请求(即 AJAX,没有重复的 JS 包含等...)。

问题是确认对话框在某些浏览器(即 Mac OS 上的 Chrome 和 Opera)中被触发两次,我的问题是,我是否遗漏了一些明显的东西,或者是上述浏览器的相当大的错误?有什么解决方法可以帮助我防止这种情况发生吗?也试过 e.preventDefault();也没有运气。

编辑 如果没有confirm('...');,我还应该提一下在点击中它只被触发一次(所以控制台中只有一个 Let us check... 发生)。确认两个日志在控制台中出现两次,但 bool 值与单击的顺序相反 - 对于示例 - 如果我单击 Cancel首先和OK稍后的控制台日志 true首先和false最后...很奇怪 :S

版本:

  • jQuery 版本:1.11.3 - 1.12.0
  • Chrome:47.0.x(最新)
  • Opera:34.0.*(最新)

示例代码(完整):

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test...</title>
<script src="http://code.jquery.com/jquery-1.12.0.min.js"></script>
</head>
<body>

<div class="myBtn" data-field="one">Take one</div>
<div class="myBtn" data-field="two">Take two</div>
<div class="myBtn" data-field="three">Take three</div>
<div class="myBtn" data-field="four">Take four</div>

<script>
$(document).ready(function () {
$(document).on('click', '.myBtn', function () {
console.log('Let us check...');
var confirmation = confirm('Are you sure you want ' + $(this).data('field') + '?');
console.log(confirmation);
});
});
</script>

</body>
</html>

或者只需单击此处:https://jsfiddle.net/gu58wwtg/1/

上次编辑:刚刚检查了其他可能性,例如裸方法(使用纯 JS,没有 jQuery)以及 prompt('...'); (它也以相反的顺序打开两次)而不是 confirm('...');还是出现问题,所以我怀疑是bug,抱歉,打扰了,感谢您的关注。我会保留这个问题,这样其他人就可以节省一些时间来解决挫折;)

最佳答案

我认为你应该使用.one

$(document).one('click', '.myBtn', function () {

Description: .one() Attach a handler to an event for the elements. The handler is executed at most once per element per event type.

关于点击 JavaScript/jQuery,确认触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35061361/

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