gpt4 book ai didi

javascript - 如何知道请求来自触发点击

转载 作者:行者123 更新时间:2023-11-29 16:52:37 25 4
gpt4 key购买 nike

我有两个按钮,即“拒绝按钮”和“上一步按钮”。单击 Reject 按钮时,我正在触发对 Prev 按钮的调用。是否可以通过单击“拒绝”按钮在 Prev 按钮处理程序中知道请求来自?

这是我的代码

$(document).on('click', '#prev', function(event) {
var event_from = event.target.tagName;
alert(event_from);
});

$(document).on('click', '#reje', function(event) {
$("#prev").click();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<input type="button" id="reje" value="Reject">
</div>
<input type="button" id="prev" value="prev">

我已经尝试使用 event.target.tagName; 但在这两种情况下我都获得了 INPUT 的值(value)

http://jsfiddle.net/Us8uc/4350/

最佳答案

Is it possible to know inside the Prev button handler that a request came from by clicking on the Reject button?

一种选择是检查 event 对象的 .isTrigger 属性。如果事件被触发(就像在这种情况下),它应该返回 true。正如下面的评论所指出的,这一个未记录的内部功能,can potentially change (尽管在这一点上可以说这不太可能)。请参阅下面的其他替代选项。

Updated Example

$(document).on('click', '#prev', function(event) {
if (event.isTrigger) {
alert('Triggered by reject.');
}
});

$(document).on('click', '#reje', function(event) {
$("#prev").click();
});

您还可以检查 event 对象的 .originalEvent 属性以确定事件的起源。仅当事件 originated from the browser 时才设置该属性,这意味着它在触发时将是 undefined:

Updated Example

$(document).on('click', '#prev', function(event) {
if (event.originalEvent === undefined) {
alert('Triggered by reject.');
}
});

$(document).on('click', '#reje', function(event) {
$("#prev").click();
});

或者,您可以在触发点击事件之前设置一个标志:

Updated Example

var triggeredByReject = false;

$(document).on('click', '#prev', function(event) {
if (triggeredByReject) {
triggeredByReject = false;
alert('Triggered by reject.');
}
});

$(document).on('click', '#reje', function(event) {
triggeredByReject = true;
$("#prev").click();
});

另一种选择是比较事件的时间戳:

Updated Example

var lastRejectClick = 0;
$(document).on('click', '#prev', function(event) {
if (lastRejectClick > event.timeStamp) {
alert('Triggered by reject.');
}
});

$(document).on('click', '#reje', function(event) {
lastRejectClick = event.timeStamp + 10;
$("#prev").click();
});

*我向时间戳添加了 10 毫秒,以说明潜在的时间戳近似值/差异。

关于javascript - 如何知道请求来自触发点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34926790/

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