gpt4 book ai didi

javascript - 为什么 jQuery 无法触发对 anchor 标记的 native 点击?

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

最近我发现当我点击其他元素时,jQuery 无法触发 anchor 标记上的原生点击事件,下面的示例将不起作用:

html

<a class="js-a1" href="new.html" target="_blank">this is a link</a>
<a class="js-a2" href="another.html" target="_blank">this is another link</a>

javascript

$('.js-a1').click(function () {
$('.js-a2').click();
return false;
});

这里是 jsfiddle - 1 .单击第一个链接不会触发对第二个链接的 native 单击。

经过一番搜索,我找到了解决方案和解释。

解决方案

使用原生 DOM 元素。

$('.js-a1').click(function () {
$('.js-a2').get(0).click();
return false;
});

这里是 jsfiddle - 2 .

说明

我找到了关于学习 jQuery 的帖子:Triggering Event Handlers .它告诉我:

The .trigger() function cannot be used to mimic native browser events, such as clicking on a file input box or an anchor tag. This is because, there is no event handler attached using jQuery's event system that corresponds to these events.

问题

那么我的问题来了:

如何理解“没有使用与这些事件对应的 jQuery 事件系统附加的事件处理程序”

为什么没有对应的事件处理器?

编辑

我更新了我的 jsfiddles,类名似乎有错误。

最佳答案

there is no event handler attached using jQuery's event system that corresponds to these events

这意味着,在学习 Material 的这一点上,没有使用 .click(function() {}.bind('click' , function () {})

无参数的 .click() 用于从 jQuery 的 Angular 触发 (.trigger('click')) 一个“点击”事件,它将执行jQuery 使用 .click.bind.on 等注册的所有“click”事件处理程序。不会发送此伪事件到浏览器。

.trigger()

Execute all handlers and behaviors attached to the matched elements for the given event type.

检查 updated jsFiddle example , 单击两个链接以查看不同之处。希望对您有所帮助。

关于javascript - 为什么 jQuery 无法触发对 anchor 标记的 native 点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30197570/

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