2009-09-10 56 views
0

我注意到在jQuery中發生了一件奇怪的事情,並想知道是否有人知道爲什麼?從HREF觸發時動畫無法運行單擊jQuery!

一旦點擊下面的錨標記

<A ID="catchme" HREF="#">Add Row</A>;

我的jQuery腳本將捕獲點擊顯示隱藏的錶行。 問題是相當滯後於重繪操作。此外,沒有一個動畫可以在正在顯示的元素上工作。

然而,當我使用<DIV>或<SPAN>趕點擊(即風格爲假冒的文本鏈接),動畫工作的一種享受!

我還在HREF上使用e.preventDefault()來阻止它跟隨HREF的鏈接。刪除e.preventDefault()並未解決問題。

使用jQuery 1.3.2在IE7和FF3.5上發生此問題。

有誰知道如何解決這個問題從錨點標籤點擊??

+2

發佈一個代碼? – 2009-09-10 04:02:04

+0

嘿安迪,這是我使用的代碼... $('a.btn')。click(function(e){addRow(this); e.preventDefault();}); 即使在錨上使用了一個ID之後,這個問題仍然存在。最後,我不得不使用一個看起來像錨點的DIV。 我想知道是否有其他人有這個問題? – pchap10k 2009-09-15 04:10:36

回答

1

經過多次調試後,我發現自己的腳本堆棧中沒有深入展示JavaScript。可能有趣的是,FireBug深陷六錯(即隱藏)錯誤,但Firefox Javascript控制檯確實報告了錯誤!

依靠Firebug作爲單一的事實來源是我的錯誤......經驗教訓。

感謝那些試圖回答這個問題,儘管描述不夠完整。

+1

+1爲真實評論的單一來源。信任沒有人:-) – 2010-01-12 11:06:43

0

在編寫事件處理程序時,您是否在傳遞參數e?例如:

$('a').click(function(e){ 
    e.preventDefault(); 
}); 

而不經過參數e,所述preventDefault()呼叫是毫無價值的。

+0

是的,我試過了。聽取錨標籤上的事件似乎是一個問題。 – pchap10k 2009-09-15 04:08:30

+1

它可能不是。在jQuery上的這個大小的問題永遠不會通過單元測試,更不用說將其轉換爲生產代碼。你可以編輯你的問題發佈你的完整代碼嗎?我會尋找的東西:你的事件綁定是否在$(document).ready()調用中,鏈接是否被動態添加等。有用的工具:Firebug的控制檯對象(http://getfirebug.com /console.html)和Visual Event書籤:(http://www.sprymedia.co.uk/article/Visual+Event)。 – 2009-09-15 11:36:48