gpt4 book ai didi

jquery - jQuery 中的多个并发事件处理

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

我正在尝试使用 jQuery 处理多个并发事件,但在事件触发时进行精细管理时遇到问题。

<html>
<head>
<title></title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
</head>
<body>

<div id="edit" contenteditable="true">Edit some content</div>
<button id="button" type="button">Click the button</button>

<script type="text/javascript">
$(document).ready(function () {
$('#button').click(function (e) {
alert('I have been clicked.');
});
$('#edit').blur(function (e) {
alert('I have been edited.')
});
});
</script>

</body>
</html>

我希望实现的是用户编辑 DIV 的内容,并在单击按钮时,在 DIV 上的模糊事件之前引发该事件。可能会出现这样的情况:该按钮从未被单击过,在这种情况下,模糊事件可能会自行触发。正如您使用上面的代码所看到的,编辑内容并单击按钮后,只会触发模糊事件。

请有人告诉我如何实现所需的功能?

最佳答案

其中一种(不可否认的是非常老套的)方式如下所示:

$(document).ready(function() {
var buttonClicked = false;
$('#button').bind('click', function(e) {
buttonClicked = true;
alert('I have been clicked.');
});
$('#edit').bind('blur', function(e) {
setTimeout(function() {
if (!buttonClicked) alert('I have been edited.');
buttonClicked = false;
}, 100);

});
});

不过,此示例不会阻止事件的触发。它只处理回调。

这里正在工作:http://jsfiddle.net/Dp6b5/1/您可以调整超时延迟,并且在这种情况下也不一定必须使用 bind

这是一个有趣的问题,但我没有看到任何“正确”的方法来处理这个 atm,因为 blur 事件实际上是在 click 之前触发的。也许其他人有更好的主意,我看不到自动取款机..

关于jquery - jQuery 中的多个并发事件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4734691/

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