我使用的是Joomla 1.5,我想在joomla的後端添加jQuery庫,以幫助我在組件視圖的設計中添加交互。如何將jQuery庫添加到Joomla管理中?
我想將jQuery添加到管理的某些頁面的HEAD部分,當然不會與已包含在Joomla中的MooTools庫衝突。
有誰知道該怎麼做?
我使用的是Joomla 1.5,我想在joomla的後端添加jQuery庫,以幫助我在組件視圖的設計中添加交互。如何將jQuery庫添加到Joomla管理中?
我想將jQuery添加到管理的某些頁面的HEAD部分,當然不會與已包含在Joomla中的MooTools庫衝突。
有誰知道該怎麼做?
你想知道真正的壞消息嗎?爲Joomla的管理員製作的組件經常依賴於MooTools(直到最近,MooTools的一個非常古老的版本)。想知道這個好消息嗎?如果您在MooTools腳本之前插入jQuery腳本,MooTools將覆蓋$
變量,但您仍然可以訪問jQuery
變量。反過來,jQuery將擁有$,一些插件和模板可能會對你大吼。
那麼如何你說?最簡單的方法就是沿着這條道路:
/libraries/joomla/document/html/renderer/head.php
轉到該文件中對周圍管線129的地方說:「生成腳本文件的鏈接」。它運行在foreach
是$document->_scripts...
陣列之前,插入此:
if ($mainframe->isAdmin) {
$strHtml .= $tab.'<script type="text/javascript" src="/media/system/js/jquery.js"></script>'.$lnEnd;
}
而剛剛替換SRC與路徑到您的jQuery腳本。現在,在你的管理工具,您將能夠與全球jQuery
VAR這樣引用jQuery對象:
jQuery('#myElement').hide();
這就是爲什麼的Joomla往往讓我發瘋。但是,嘿..它並不是真正爲開發人員構建的,它是爲用戶構建的。
一種更好的方式,恕我直言,是做這樣的文檔準備功能:
var $jq = jQuery.noConflict();
jQuery(document).ready(function($){
// your doc ready code...
});
所以,它的作用是把jQuery的到noConflict模式基本上重新分配「$」,以「$ JQ」的第一件事。因此,不要像這樣調用jQuery:$(x).y()你必須這樣做:$ jq(x).y()。這一切都很好,很棒。事實上,你甚至不必這樣做,你也可以使用「jQuery」(即jQuery(x).y())。 「$」只是一個別名。其次,上面的doc ready構造函數傳入'$'作爲參數,這個參數又是jQuery的別名,並允許您在doc準備好的回調中使用'$'。
希望這會有所幫助。我會張貼評論,但我沒有足夠的分數或任何評論。
感謝這個偉大的答案。我只需要改變一下你給我的代碼來檢查我們是否是管理員的一部分。它是這樣的: global $ mainframe; if($ mainframe instanceof JAdministrator){ $ strHtml。= $ tab。''。$ lnEnd; \t \t} – Ben 2010-11-05 01:37:27