2011-11-13 59 views
1

我一直在研究嵌入到wordpress中的Ian Lunn's interactive map版本。

該腳本在standalone page上完美工作,但是當加載到wordpress時,腳本不執行任何操作。我已經嘗試了各種解決方案 - 以不同的方式加載jQuery(在functions.php,inline,在頁眉和頁腳中),降級到早期版本的jQuery,爲函數命名,並命名它。沒有任何反應,螢火蟲顯示沒有錯誤,什麼都沒有。

我在此階段完全喪失,任何幫助提供將不勝感激。

工作演示在這裏:http://www.ianlunn.co.uk/demos/bbc-news-jquery-map/ Github上源:答案

它蒸發的美元符號在WordPress預留了Prototype庫後https://github.com/IanLunn/BBC-News-jQuery-Map

//更新,這就是爲什麼它的錯誤了與'$不是函數' - 下面接受的答案指出了這一點,但僅在評論中才更新,以便更清晰。例如: -

$().ready(function() { 
    $("#select_me").show(); 
}); 

jQuery().ready(function() { 
    jQuery("#select_me").show(); 
}); 
+1

只是用於進一步信息:在WordPress,jQuery庫在[noConflict模式](加載http://api.jquery.com/jQuery.noConflict /)。這就是爲什麼jQuery函數需要追加'jQuery()'而不是'$()'。在這樣的函數內部,'$()'再次運行。即在你的示例'$(「#select_me」)。show();'中仍然有效,只要最外層的包裝以'jQuery()'開頭。 –

回答

3

當我進入您的頁面時,我在Firebug控制檯中看到兩個錯誤。

首先是:

XML can't be the whole program. 
?> map.js?ver3.2.1 (line 55) 

二是:

document.getElementById("recaptcha-submit-btn-area") is null 
/about/...ve-map/ (line 595) 

然後我看到:

carouFredSel: No element selected. 
jquery...r=1.4.2 (line 14) 

您沒有看到這個輸出?

編輯︰你的map.js有PHP代碼包裝的代碼,這就是問題所在。它是通過Javascript文件將PHP代碼傳遞給客戶端的。

+1

我只是試着把代碼從bbc的map.js文件放入你的頁面,通過在Firebug控制檯中運行它(我不得不將它封裝在一個將$引用爲$的閉包中,因爲你的頁面已經爲$指定了其他內容)。然後它成了一半......地圖沒有生成動畫,但是當我在地圖的某個區域上空盤旋時,我會看到列表中正確的項目突出顯示。 – dnuttle

+0

一旦我糾正了用functions.php覆蓋map.js文件的問題,很明顯wordpress會保留$ - 謝謝你的幫助! – toomanyairmiles

3

我知道這已經得到了回答,但這是我學會如何做到這一點,即使它基本上是相同的答案,它可能會幫助其他人能夠複製/粘貼解決方案。

基本上包裹所有jQuery的此函數內:

jQuery(document).ready(function($) { 

    /* Put your jQuery functions here, 
     no need to change the $ to jQuery. */ 


});