我使用
jquery做一个模块.我的joomla模板有一个集成的jquery菜单.所以他们相互冲突.
<script type="text/javascript" charset="utf-8"> window.onload = function () { var container = jQuery('div.sliderGallery'); var ul = jQuery('ul',container); var itemsWidth = ul.innerWidth() - container.outerWidth(); jQuery('.slider',container).slider({ min: 0,max: itemsWidth,handle: '.handle',stop: function (event,ui) { ul.animate({'left' : ui.value * -1},340); },slide: function (event,ui) { ul.css('left',ui.value * -1); } }); }; </script>
解决方法
要解决问题所需要做的就是将jQuery函数取消别名,并将其分配给另一个变量名(记住:变量可以是函数).您需要使用
jQuery.noConflict()
函数来取消别名$()函数.这里有一个:
// ...after all of Joomla's JS is done executing... // before loading your version of jQuery var jquery = {}; // aka new Object() jquery.joomla = jQuery.noConflict(); // moves jQuery into another namespace // load your version
现在,当您加载版本时,它将接管jQuery和$命名空间,但如果需要,您仍然可以对Joomla的jQuery函数进行其他引用.要重新迭代,基本流程是:
>加载Joomla的jQuery>运行Joomla的jQuery相关代码>将Joomla jQuery移动到另一个命名空间>加载你的jQuery>使用$()执行代码