我試圖將jQuery的mouseenter事件連接到容器中的一堆鏈接。我也想取消鏈接的導航,所以我接線點擊事件。突然之間,鼠標中止處理程序只在點擊鏈接後執行。它仍然是鼠標輸入事件,因爲如果我將鼠標懸停在鏈接上,並再次單擊它不會觸發,它只會在每個條目中發生一次。但只有當我點擊。當我將鼠標移到它上面時,沒有任何反應。我創建了一個來試圖展示問題,但我無法在那裏重現它。它按預期工作。這裏是我的代碼:jQuery委託的mouseenter事件僅在點擊時觸發
<div>
<a name="lnkClassTime" href="#">@classTime.ClassTimeHour</a>
</div>
Wireup:
this.attachSchedule = function() {
_$classSchedules = $("#classSchedules");
//..wire up other events
_$classSchedules.on("mouseenter", "a[name='lnkClassTime']", classTimeMouseEnter);
_$classSchedules.on("click", "a[name='lnkClassTime']", classTimeClicked);
}
function classTimeClicked() {
//Fires when I click the link
}
function classTimeMouseEnter() {
//Only fires if I click the link
}
它必須是一些愚蠢的事。任何人都可以弄清楚發生了什麼?
已解決,請參閱下面的答案。 – xr280xr
我建議給鏈接一個id,以便你可以避免Sizzle選擇器[name ='lnkClassTime'] – frenchie
感謝您的建議。該鏈接是在一個asp.net mvc循環中創建的,所以我最終會得到重複的ID。任何方式在這個? – xr280xr