2012-05-17 112 views
0

所以我有我的網站頂部的鏈接列表,允許用戶點擊它們,當這個點擊事件發生時我有一個JavaScript函數滾動一個非常大的列表頁面中div內的鏈接。問題出在IE7以及它在觸發時如何處理click事件。我正在使用jQuery來防止默認操作,並且這在Chrome,Safari,Firefox和IE 8/9中正常工作,但在IE7中,瀏覽器正試圖利用默認時尚中的錨點。此錨的href屬性只是一個字符串,可幫助我識別頁面下部的鏈接。如果我點擊IE7中的鏈接,我會得到一個404,但如果我點擊後退按鈕並再次單擊該鏈接,腳本將正常工作,並以正確的方式處理事件。我也試過IE 7中e.preventDefault的問題

event.preventDefault ? event.preventDefault() : event.returnValue = false; 

代替e.preventDefault的(),但是這使得在IE7如何處理我的情況click事件沒有差別。

有什麼建議嗎?此外,如果用戶當前正在查看其他選項卡(只有2個選項卡),則在我的頁面上有一個選項卡式導航,用於隱藏與該選項卡關聯的數據。任何一個選項卡中的內容大致相同,結構完全相同,但是當我在第一個(默認)選項卡上執行導致上述錯誤的完全相同的進程時,IE沒有問題。

+0

請向我們展示您的完整代碼。 – gdoron

+1

需要查看具有點擊處理程序的功能 – Neil

回答

0

原來,IE7在綁定頁面上隱藏的元素時遇到了一些問題。或者至少這是我能夠解決的問題。我沒有使用.click事件處理程序,而是找到了一個名爲.on()的jQuery提供的方法,該方法取代了自1.7版以來已棄用的.live()方法。

「的。對()方法附加事件處理程序到當前選定設置在jQuery對象元素的 。在jQuery 1.7中,。對()方法 提供用於附接的事件處理程序所需的所有功能「。

這個問題解決了IE7中的問題。