可能嗎在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