2010-11-22 60 views
2

我在網站上工作,它有幾個鏈接。當我點擊鏈接時,即使瀏覽器狀態欄正確顯示了目標網址,也沒有任何反應。我檢查了沒有z-索引或任何這樣的問題(仍然可能錯過了某些東西)。網站中某些特定的超鏈接不工作

下面是該網站的鏈接 - http://www.deals4all.gr/city.php?ename=athens

一旦出現,點擊「選擇城市」框和2個鏈接將顯示。嘗試點擊其中任何一個。沒有用。此外,當我打開新標籤中的鏈接或複製粘貼鏈接到新窗口時,它工作正常。我在IE,FF和Chrome中檢查過這個問題。

任何幫助將不勝感激。謝謝!!

回答

4

這是一個JavaScript的問題—我注意到你的代碼被混淆/包裝用Dean Edwards的包裝,所以我粘貼它變成http://jsbeautifier.org並迅速發現了問題:

jQuery('#guides-city-change').click(function() { 
    return !jQuery('#guides-city-list').toggle() 
}); 

當你點擊一個鏈接,點擊事件冒泡達到#guides-city-change,觸發上述處理程序。 toggle()總是返回它被調用的jQuery對象,並且否定與!的對象將始終評估爲false導致return false,這將取消事件最初觸發的默認操作<a>

由於是<div>元素沒有默認操作,最簡單的解決方案是使用event.stopPropagation()代替:

jQuery('#guides-city-change').click(function (e) { 
    jQuery('#guides-city-list').toggle(); 
    e.stopPropagation(); 
}); 

端注:如果您使用的是模糊的目的封隔器,然後不要打擾。正如你所看到的,這很容易解決。

+0

感謝您的答覆。正如你所提到的,JS是包裝好的,你也提到它很容易解決。您能否介紹一下如何解決這種情況? – 2010-11-23 04:44:17

+0

@Vikram:簡單的,我只是把你的整個打包的JS代碼粘貼到http://jsbeautifier.org中的盒子中 - 它將清理它,然後將所有行和縮進添加回去。 – 2010-11-23 08:52:37

+0

哦,你的意思是說。我以爲你是指別的東西。讓我試試這個。謝謝!!! – 2010-11-23 09:01:51

1

鏈接正常工作。

的問題是,導航到

http://www.deals4all.gr/city.php?ename=athens 

帶你回到主頁

+0

因此,在他的PHP中,他一直沒有定義一旦ename = athens要做什麼。確保使用$ _GET函數來獲取它。 – ryryan 2010-11-22 12:36:37

+0

他所指的「選擇城市」框也在主頁上。 – 2010-11-22 12:40:05

+0

這不是問題。一切都在PHP中正確處理,相同的代碼在其他領域完美地工作。這很可能是Andy提到的JavaScript問題。將嘗試並更新。 – 2010-11-23 04:28:16