2010-03-28 50 views
1

我剛剛得出的結論是,我目前正在進行的一個項目在功能上可能存在「邏輯」錯誤。點擊行爲 - 差異在IE和FF?

目前我使用PHP/MySQL和JQuery的服務器技術。 內頁有一個與標籤

<a href="contentpage?page=xxx">next step</a> 

正常鏈接引用該痛點,現在似乎是相同的元素在給定的jQuery click事件。其意圖是通過使用php會話命令通過另一個php腳本保存頁面(當前)的內容( - >表單元素)。 出於任何原因,IE可以在執行標準html命令之前處理Jquery的單擊事件,該命令使用新的頁面參數重新加載當前頁面。通過使用FF,行爲是不同的。我假設,FF首先執行html命令,然後執行處理click事件的JavaScript代碼。因此,這裏的結果集錯誤地是空的。

我現在的問題是你是否做出了相同的經歷以及你如何處理/理解這個問題。

我會很感激你的任何提示或進一步的反饋意見。也許你也有一個關於如何重新思考當前體系結構的解決方案。

問候, 奧利弗

+0

問題不明確。我認爲沒有「標準的html命令」。 – Dor 2010-03-28 20:02:20

+0

@Dor他的意思是「點擊」'元素產生的原生動作「,我想。 – Pointy 2010-03-28 20:18:30

回答

0

如果我理解正確的話,你是分配click事件的鏈接,留下href到位,準備射擊。這是非常不明智的,因爲當用戶點擊鏈接時,click事件中任何javascript的執行都是有限的,而且是任意的。不同的瀏覽器可能會以不同的方式處理它 - 無論如何,這是錯誤的方法。您永遠無法確定您的操作是否完全執行。

通常的做法是讓click事件return false,阻止鏈接的默認動作觸發,並在完成所有操作時執行放鬆的location.href = this.href

如果您使用Ajax發送一些數據,然後將location.href部分放入您的Ajax調用的success回調中。這樣,你可以100%確定數據被髮送。

+0

嘿Pekky, 感謝您的評論。當然,我在這種結構中提出了一些想法。我越是平衡了我以同樣的觀點來看整體可能性。因爲我已經認爲我的辯護方式不是非常聰明,我只想澄清情況。我想我會用這種方式給它。 當然,當前過程是非常快「東經髒了,所以這是startover這個:) – OlliD 2010-03-28 21:02:07

1

事實上,firefox會在超鏈接採取重定向操作之前引發事件並執行附加的命令,也許執行命令時發生錯誤,IE允許它在firefox拋出錯誤和jQuery時完成其操作功能塊處理它,你不會注意到拋出異常。 做一個測試按鈕與經典的onclick事件和測試你的功能,看看它是否可能在Firefox中工作

+0

親愛Kronass討論:) 感謝你的努力和參與的原因, 我第一次也是這個意見,因此嘗試了幾種使用ajax函數的方法和一些教程中的示例。當我刪除相應的href參數時,它工作得很完美。所以我認爲我的代碼結構組合不是很有意思。這就是爲什麼我想就如何以更好的方式管理這個問題展開討論... 謝謝你的回覆:) – OlliD 2010-03-28 21:07:17