gpt4 book ai didi

jQuery 触发事件但仍然有 event.isTrigger false

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

jQuery 提供了一个 isTrigger 属性,它允许我们知道该事件是“真实事件”还是只是“已触发”。

$(ele).on("click", function(e){
if(e.isTrigger){
// this event was only triggered, not a real event
}else{
// this was a real event
}
})

出于单元测试的目的,有没有办法触发事件并以某种方式覆盖isTrigger属性..并且在事件回调中仍然表现良好(通过使isTrigger === false) 就好像它是一个真正的点击事件..正在尝试以下代码:

var triggerClick = jQuery.Event("click", {
isTrigger:false,
data:{
isTrigger:false
}

但似乎没有正确通过..

最佳答案

如何使用 native 方式,完全避免 jQuery isTrigger:

function simulateClick(elem) {
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, elem,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
if (document.createEvent) {
elem.dispatchEvent(evt);
} else {
elem.fireEvent("on" + evt.eventType, evt); // support for IE crap
}
}

要使用它,您只需执行以下操作:

$(ele).on("click", function(e){
if(e.isTrigger){
// this event was only triggered, not a real event
console.log('triggered');
}else{
// this was a real event
console.log('clicked');
}
});

simulateClick(ele);

FIDDLE

关于jQuery 触发事件但仍然有 event.isTrigger false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16547259/

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