2010-02-14 131 views
2

我有兩個Jquery函數,可以在頁面上單獨工作,但不能在同一時間使用它們。我無法看到我可能做錯了,因爲我有類似的代碼在其他頁面上運行良好。Jquery 1.4:兩個函數在同一頁上不能一起工作

第一功能:

$(document).ready(function() 
{ 
    $("#add-questions").click(function() {$("#extra-questions").fadeIn(800);}); 
}); 

二級功能:

$(document).ready(function() 
{ 
    if($PHPTRIGGER == true) 
    { 
     $("#pop-text").html("Message sent."); 
     $("#pop").show(); 
     setTimeout(function() {$("#pop").animate({height: "hide", opacity: "hide"}, "medium");}, 4000); 
    } 
}); 

的 「$ PHPTRIGGER」 是一個PHP變量,我傳遞給jQuery的(StackOverflow上不允許我放在真正的PHP,所以我已經標記爲這樣)。

我試過把這兩個函數放在相同的「文檔就緒」,嘗試交換順序,但他們只是不一起工作。

有什麼想法?

謝謝。

UPDATE:

就這麼失敗的響應click事件的第一功能。它只在第二個函數執行後才能工作(鏈接到表單提交)。仍然想知道爲什麼這樣。

最後更新:

解決了與螢火蟲的問題。必須初始化PHPTRIGGER通過PHP傳遞一個空值或第一個函數失敗。這實際上很有趣,因爲該功能沒有采用任何PHP。基本上,第二個函數中的(嚴格)語法錯誤導致第一個函數失敗,而第二個函數本身工作正常。

+1

如果您還沒有使用帶有Firebug的Firefox,請安裝它(或類似於Firebug for IE)並檢查控制檯是否有錯誤消息。 – 2010-02-14 17:41:52

+1

而且你很確定目標「add-questions」元素真的存在並且真的具有「id」值(並且真的是唯一具有該「id」值的)?正如@Felix所說的,當試圖確定設置的完整性時,Firebug是非常寶貴的。 – Pointy 2010-02-14 17:48:21

+0

安裝了螢火蟲,現在看看。 – Tom 2010-02-14 17:48:30

回答

1

他們爲我工作,當我把它們放入一個測試頁:4秒後

  • 彈出隱藏。

  • 彈出文本顯示「已發送消息」。

  • 當我點擊#附加題,#額外的問題DIV變淡(假定初始顯示:無)

如果你想比其他的東西,你可能只是去睡眼惺忪的看着在你自己的代碼中(也許你想在兩個地方都用#pop代替#pop,而在另一個地方用#pop-text?)

你可能會嘗試的其他東西:在Chrome中運行並檢查JS控制檯是否有錯誤如果您當前的調試器沒有向您顯示錯誤並且執行僅僅停止)。檢查您的HTML以確保引用的ID確實存在。檢查你的CSS,確保你的初始值是正確的。確保您的$ PHPTRIGGER變量正確傳遞。

讓我們知道你是否有更多的信息或找到任何東西。

+0

Plynx,感謝您抽出寶貴時間進行測試。 – Tom 2010-02-14 17:58:22

+0

沒問題 - firebug非常棒,它也有一個JQuery插件 - 但我仍然將Chrome作爲輔助調試器,因爲有時候它會捕獲其他的東西。根據我的經驗,當Javascript看起來「不要去」時,這是因爲調試器馬上會告訴你大部分時間都是因爲一個簡單的bug。 – Plynx 2010-02-14 21:17:37

相關問題