【发布时间】:2021-11-26 04:44:10
【问题描述】:
我正在使用 Vue2,并且我有 <a> 标签与 href='#' 和 @click.prevent="someMethod()"。
这在左键单击的情况下按预期工作(它正在调用一个方法),但如果我执行right click -> open in new tab,在这种情况下它会打开href 值,这是错误的。
您建议哪种方法在从非左键单击情况下打开时也调用@click.prevent="someMethod()"?
【问题讨论】:
-
为什么要使用锚标签?为什么不使用按钮?这将是符合 aria 标准的方式。
-
不幸的是,这是我们必须遵循的“公司规则”,所有链接都必须作为锚标记
-
您是否只是想要这样当有人右键单击
<a>标签时才触发该方法?您说当您右键单击并选择“在新选项卡中打开”时,该行为是错误的,但尚不清楚您认为正确的行为应该是什么。如果只想控制右键事件,可以使用@click.right明确控制右键。 -
@RobertStefanic,我需要对所有点击具有相同的行为(左键单击、ctrl + 左键单击、命令 + 左键单击 iOS,右键单击 + 在新选项卡中打开等)。预期的行为是 click 触发方法,而不是 href 值
-
@99Coder “在新选项卡中打开”不应执行与左键单击相同的操作。您还说这是公司政策,所有 链接 必须是锚标记(好),但在这种情况下这真的是链接吗?它看起来像一个按钮。您始终可以使用按钮,但如果您愿意,可以将其设置为链接。
标签: javascript html vue.js vuejs2