gpt4 book ai didi

events - 如何在 jQuery 中重新触发(或延迟触发) `mousedown` 事件?

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

最近有一个问题困扰着我:在 mousedown 处理程序中,我在事件上使用 .preventDefault 来防止拖动时选择文本:

$(document).bind('mousedown', function(event){
event.preventDefault();
});

到目前为止一切顺利。

然后,在仍然按下鼠标按钮的同时,我想等待触发 longclick 事件 ( http://github.com/pisi/Longclick ) 并拥有 longclick 处理程序以某种方式恢复原始的 mousedown 事件并开始文本选择,就像事件的默认设置从未被阻止一样。

有没有办法延迟触发其他 native 鼠标事件?

.trigger 是否能够以某种方式接受现有(存储的)事件对象?例如这样的事情?:

var originalEvent;

$(document)
.bind('mousedown', function(event){
event.preventDefault();
originalEvent= event;
})
.bind('longclick', function(event){
$(event.target).trigger(originalEvent)
})

我希望能够拖动整个文本段落,并且仍然提供在段落内执行文本选择的可能性。

欢迎所有答案、建议和想法!

最佳答案

就 jQuery 而言,将事件对象传递给 trigger 是有效的(与 jQuery 绑定(bind)的事件处理程序将被执行,并接收该对象作为参数),这允许您做一些很酷的事情,例如this ,但不会发生默认操作。大多数浏览器支持 DOM level 2 规范,dispatchEvent ,除了 the usual suspect ,其中有 fireEvent相反,这是非常无用的,因为它不会触发默认操作。

关于events - 如何在 jQuery 中重新触发(或延迟触发) `mousedown` 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4474396/

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