为什么jQuery无法触发锚标记的本机点击?

Mia*_*ter 9 javascript jquery

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

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>
Run Code Online (Sandbox Code Playgroud)

JavaScript的

$('.js-a1').click(function () {
  $('.js-a2').click();
  return false;
});
Run Code Online (Sandbox Code Playgroud)

这是jsfiddle - 1.单击第一个链接将不会触发第二个链接上的本机单击.

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

使用本机DOM元素.

$('.js-a1').click(function () {
  $('.js-a2').get(0).click();
  return false;
});
Run Code Online (Sandbox Code Playgroud)

这是jsfiddle - 2.

说明

我在Learn jQuery:Triggering Event Handlers上发了一篇文章.它告诉我:

.trigger()函数不能用于模仿本机浏览器事件,例如单击文件输入框或锚标记.这是因为,没有使用与这些事件对应的jQuery事件系统附加事件处理程序.

所以这是我的问题:

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

为什么没有这样的相应事件处理程序?

编辑

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

Ari*_*iao 3

没有使用与这些事件相对应的 jQuery 事件系统附加的事件处理程序

.click(function() {}这意味着,在学习材料的这一点上,尚未使用或.bind('click', function () {})等将 jQuery 事件处理程序附加到这些元素。

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

。扳机()

执行附加到给定事件类型的匹配元素的所有处理程序和行为。

查看更新后的 jsFiddle 示例,点击两个链接查看差异。希望能帮助到你。