我有两个按钮,即"拒绝按钮"和"上一个按钮".单击"拒绝"按钮时,我正在对"上一个"按钮进行触发调用.是否可以通过单击"拒绝"按钮来了解Prev按钮处理程序内部发出的请求?
这是我的代码
$(document).on('click', '#prev', function(event) {
var event_from = event.target.tagName;
alert(event_from);
});
$(document).on('click', '#reje', function(event) {
$("#prev").click();
});Run Code Online (Sandbox Code Playgroud)
<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">Run Code Online (Sandbox Code Playgroud)
我尝试过使用event.target.tagName;但是我INPUT在两种情况下都获得了价值
是否可以通过单击"拒绝"按钮来了解Prev按钮处理程序内部发出的请求?
一种选择是检查对象.isTrigger上的event属性.如果事件被触发(例如在这种情况下),它应该返回true.正如下面的评论所指出的,这是一个未记录的内部特征,可能会发生变化(尽管在这一点上可能不太可能).请参阅下面的其他替代选项.
$(document).on('click', '#prev', function(event) {
if (event.isTrigger) {
alert('Triggered by reject.');
}
});
$(document).on('click', '#reje', function(event) {
$("#prev").click();
});
Run Code Online (Sandbox Code Playgroud)
您还可以检查对象.originalEvent上的event属性,以确定事件的来源.仅当事件源自浏览器时才设置该属性,这意味着它将在被undefined触发时:
$(document).on('click', '#prev', function(event) {
if (event.originalEvent === undefined) {
alert('Triggered by reject.');
}
});
$(document).on('click', '#reje', function(event) {
$("#prev").click();
});
Run Code Online (Sandbox Code Playgroud)
或者,您可以在触发click事件之前设置标志:
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();
});
Run Code Online (Sandbox Code Playgroud)
另一种选择是比较事件的时间戳:
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();
});
Run Code Online (Sandbox Code Playgroud)
*我在时间戳上添加了10毫秒,以说明潜在的时间戳近似值/差异.
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |