2013-10-31 18 views
0

我爲一個項目使用Joomla 3,很高興他們將jQuery添加到CMS。添加jQuery UI支持的「批准」方式是將JHtml::_('jquery.ui');添加到文檔頭部。向Joomla 3添加額外的jQuery UI行爲

但是,它們只支持最小的一組小部件。例如,如果我想使用非標準小部件(如「進度條」),如何在不添加(冗餘)jQuery下載程序隨附的所需jQuery核心元素的情況下添加此項?

感謝

回答

1

我最終通過下載的jQuery UI的舊版本,解決這一問題包括與Joomla(在這篇文章的時候,它是23年8月1日),而不是使用了jQuery UI的網站上的「建設者」。 jQuery的23年8月1日可以在這裏找到:

https://code.google.com/p/jquery-ui/downloads/detail?name=jquery-ui-1.8.23.zip&can=2&q=

然後,使用JHtml::('jquery.ui')調用來加載jQuery UI的核心,只是包括你從上面的下載鏈接需要實際的小部件代碼。這似乎很好,並且不會與其他可能會使用Joomla API加載jQuery UI的組件/插件/模板衝突。

JHtml::_('jquery.framework'); // load jquery 
JHtml::_('jquery.ui'); // load jquery ui from Joomla 
$this->document->addScript(JURI::root(true).'/components/com_mycomponent/assets/jquery.ui.slider.min.js'); // load *same version* widget code from jQuery UI archive 
+0

這也將打破另一個擴展,如果它加載滑塊:-) – Laoneo

+0

@ Laoneo-真實!但是,直到Joomla改善他們的API,這是一個很好的解決方法,我可以找到。謝謝! – user101289

0

您可以從http://jqueryui.com/download下載頁面,你需要額外的部件構建自定義jQuery UI的。之後,您可以通過刪除Joomla內核已經部件來修改下載的JavaScript文件。除了你根本不加載JHtml::_('jquery.ui');之外,沒有辦法繞過它。

當Joomla會提供更高級的解決方案來加載jQuery UI時,我也會感到非常高興。

+0

謝謝Laoneo,但是這打破時,另一個插件/模板/模塊也需要jQuery UI。 – user101289

+0

我建議的解決方案與您自己的答案完全相同,您必須使用所需的小部件加載額外的文件。大多數用戶安裝jQuery easy(http://extensions.joomla。組織/擴展/核心增強/性能/ jQuery的腳本/ 18327)。它內置了jQuery UI支持,並用重複腳本清理網站(用一些神奇的正則表達式替換命令)。 – Laoneo

1

的JUX庫包括jQuery核心UI代碼加窗口小部件,鼠標,位置,和可排序(23年8月1日版本的Joomla 3.0.2的)。請查看jQuery-UI文檔以獲取更多關於它們用法的詳細信息。

爲了加載核心調用:JHtml::_('jquery.ui');

這將從媒體/瑞目錄加載相應的jQuery的ui.core.js。如果尚未完成,啓用jQuery UI會自動啓用noConflict模式的jQuery。

要添加可排序庫,使用JHtml::_('jquery.ui', array('sortable'));這將自動包括jQuery核心UI庫和jQuery庫。

爲了清楚起見,最好是明確地啓用這兩個使用JHtml::_('jquery.ui', array('core', 'sortable'));

作爲的Joomla 3.0.2的單個呼叫的核心和排序,只有jQuery UI的核心和可排序的安裝/使用。要使用其他jQuery插件(包括jQuery UI插件),您需要確保它們隨應用程序一起安裝,並調用JHtml :: _('script')以及相應的參數來加載它們。或者,你可以創建和安裝自己的JHTML擴展和創建自己的JHTML要求 - 如JHtml::_('mylibrary.myloader')

你可以看到從this頁的詳細