gpt4 book ai didi

javascript - jQuery preventDefault() 没有像我预期的那样工作——这是一个 jQuery 错误吗?

转载 作者:行者123 更新时间:2023-11-30 10:45:51 25 4
gpt4 key购买 nike

这是精确重现我在使用 jQuery 时遇到的问题的简化代码。

我希望它取消原始点击,然后再次触发点击事件,这反过来会导致浏览器加载 url 的 href。

<script type="text/javascript">
$( function()
{
var confirmed = false;
$('a').click( function( event )
{
if ( confirmed == false )
{
event.preventDefault();
confirmed = true;
$(event.target).trigger( 'click' );
}
});
});

</script>

Original Question Here

我不想更改 window.location。我想触发,以便任何已绑定(bind)到单击事件的事件处理程序也将触发。正好我也想让浏览器跟随链接。

最佳答案

.trigger('click') 不会触发浏览器的默认操作——它只会触发绑定(bind)到该元素上该事件的 jQuery 事件处理程序。

看看this answer — 您需要自己创建并触发点击事件。这是该答案的代码:

function fireEvent(obj,evt){
var fireOnThis = obj;
if( document.createEvent ) {
var evObj = document.createEvent('MouseEvents');
evObj.initEvent( evt, true, false );
fireOnThis.dispatchEvent( evObj );

} else if( document.createEventObject ) {
var evObj = document.createEventObject();
fireOnThis.fireEvent( 'on' + evt, evObj );
}
}

关于javascript - jQuery preventDefault() 没有像我预期的那样工作——这是一个 jQuery 错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8388851/

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