ClearBox 3 jQuery.noConflict();和/或javascript冲突?

时间:2012-06-26 02:25:37

标签: javascript jquery joomla mootools

我一直试图从script开始ClearBox3以阻止与MooTools发生冲突。但我似乎无法在谷歌上找到解决方法如何执行此操作

预期(删除了mootools库) - 显示模态窗口 expected http://iforce.co.nz/i/hf1foynk.pvf.png

Actual(Joomla 2.5 Enviroment) - 将我重定向到图像,不显示模态窗口。 actual http://iforce.co.nz/i/zn2j3gxi.fpi.png

到目前为止,我已经运行了代码jQuery.noConflict();,我已将$的函数调用与jQuery.交换,但我遇到了错误{{1} }。

Missing Formal http://iforce.co.nz/i/rpqr0ymo.nso.png

以下是脚本here的修改。

更新:不确定其jquery是否有冲突..由于实施此fiddle(感谢Joseph Silber)并且发生了新的错误..

missing ( before formal parameters line 1

所以问题是......我怎么能阻止冲突呢?在ClearBox3和MooTools之间?

3 个答案:

答案 0 :(得分:2)

您不应将$替换为jQuery.,而应替换jQuery

您也可以尝试

JQ = jQuery.noConflict(); 

然后将所有$替换为JQ,这将是您的本地签名。

答案 1 :(得分:2)

无需替换所有$符号。只需创建一个闭包:

(function($) {
    // put all the code in here,
    // the $ will refer to the local variable containing jQuery
})( jQuery.noConflict() );

这是小提琴:http://jsfiddle.net/v3qWN/

答案 2 :(得分:1)

我发现问题是mootools覆盖了joomla 2.5上clearbox中使用的一些变量。

使用$document->addCustomTag('<script src="js/clearbox.js" type="text/javascript"></script>');。这在mootools下面而不是在上面声明。