//...
<a href="#" id="foo-link">Foo</a>
<script type="text/javascript">
$('#foo-link').click(function(e) {
//...
}
</script>
//...
一個HTML頁面上使用jQuery,上述定義的click
處理程序被執行如何檢測'Enter'是否觸發了點擊事件?
- 當用戶點擊它,並且當用戶通過標籤導航到它並且擊中
- 輸入
(至少在Firefox中)似乎沒有差異傳遞給處理程序的點擊事件之間 - 原始鍵事件「神奇地」轉化爲點擊事件。
有沒有辦法區分這兩種情況?
爲了給出更多的細節,爲什麼我需要以不同的方式處理這兩種情況:在我的特殊情況下,點擊處理程序將焦點設置爲文本輸入字段。此文本輸入字段已註冊一個keyup
事件處理程序,用於發送AJAX請求。當用戶在鏈接上點擊輸入後觸發點擊處理程序時,現在焦點文本輸入字段將收到keyup
事件,並且AJAX請求被錯誤地發送。
不知道這是可能的,但你可以用'event.keyCode'檢查一個密鑰已經被使用的點擊處理程序? – Nunners
那麼在你描述的場景中,輸入字段仍然是空的?那麼爲什麼不檢查_that_,並且在這種情況下不要發出AJAX請求? – CBroe
不,你不能區分,在兩種情況下引發的事件都是一個MouseEvent。您應該爲輸入密鑰附加另一個偵聽器,並在該情況下阻止其他偵聽器 –