Joomla,jQuery模块冲突
我在我的网站上有一个自定义的jQuery手风琴菜单,当mod启用时,它会破坏我的RokSlideshow模块。
我不能让他们两个同时工作。
该网站是http://www.fbcsheffield.org/2.0
任何帮助将非常感激!
您必须先强制加载MooTools,然后在执行任何jQuery代码或插件之前加载jQuery并告诉它进入No Conflict模式。 检查第183页: http : //www.packtpub.com/files/learning-joomla-1-5-extension-development-sample-chapter-8-using-javascript-effects.pdf或Joomla论坛上的这个主题: http : //forum.joomla.org/viewtopic.php?f = 231&t = 283215
编辑:你实际上不必首先加载MooTools,你只需要确保在加载jQuery后立即调用jQuery.noConflict(): http : //www.designvsdevelop.com/jquery-in-joomla-i -错了
使用jQuery NO CONFLICT MODE
Joomla使用ob_start()缓冲所有内容。 您可以通过以下方式获取当前缓冲区
$body = JResponse::getBody();
然后,您可以使用“onAfterRender”事件找到JQuery和MooTools脚本声明并在系统插件中重构它们。
您可以使用preg_replace()获取JQuery并在MooTools之后输入。 然后,您可以在JQuery中启用无冲突模式。
jQuery.noConflict();
这是一个将MooTools从1.1更改为1.2的示例插件。 你可以为JQuery的无冲突模式做一些相似之处。
getType(); // deactivate for backend if ($mainframe->isAdmin()) { return false; } // add mootools 1.2 if ( $doctype == 'html' ) { $document->addScript('components/com_ajaxchat/js/mootools-1.2-core.js'); $document->addScript('components/com_ajaxchat/js/mootools-1.2-more.js'); $document->addScript('components/com_ajaxchat/js/mootools-1.2-core-compat.js'); $document->addScript('components/com_ajaxchat/js/mootools-1.2-more-compat.js'); } } /** * After Templte output is in buffer */ function onAfterRender() { $mainframe =& JFactory::getApplication(); $document =& JFactory::getDocument(); $doctype = $document->getType(); // deactivate for backend if ($mainframe->isAdmin()) { return false; } // Only render for HTML output if ( $doctype !== 'html' ) { return; } // get the output buffer $body = JResponse::getBody(); // remove mootools if not needed if (stristr($body, 'mootools.js') || stristr($body, 'mootools-uncompressed.js')) { $body = preg_replace("//i", '', $body); } else { $body = preg_replace("/[\s\t\r\n]*/i", "\n", $body); } JResponse::setBody($body); } } ?>
你有moo-tools和jquery冲突。 我建议使用jquery幻灯片模块 – 这将是最简单的方法。
编辑:冲突看起来像他们使用相同的命名空间,但我没有太多时间深入细节
试试这个http://extensions.joomla.org/extensions/core-enhancements/scripts/7230