可能吗在Prev按钮处理程序中知道通过点击拒绝按钮发出请求?
一个选项是检查event
对象上的.isTrigger
属性。它应该返回true,如果事件被触发(就像在这种情况下一样)。正如在下面的评论中指出的那样,这个是一个没有记录的内部特征,虽然这在目前可能不太可能。请参阅下面的其他选项。
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毫秒的时间戳考虑到潜在的时间戳逼近/差异。
'event.target.id'?或'$(this).attr('id');'或$(this).val();''tagName'不会起作用,因为它们都是相同的。 – putvande
你想获得上一个函数的事件吗?那是对的吗? – prola
,因为事件是在您手动触发事件的按钮上触发的。你不会得到原始点击事件。检查事件对象,你会看到两者之间有什么不同。 – epascarello