我有用于切换效果的特定文件集。当我使用这两个文件时,它适用于我。但我用复制文件与我的js文件集合,所以它开始给我错误。它给了我相互矛盾的错误。当萤火虫。它在第一个文件中显示错误。
<script>
$(document).ready(function() {
//$.noConflict();
$('.toggle_block').toggleElements({
fxAnimation:'slide',
fxSpeed:'fast',
className:'toggler'
});
});
</script>
Firebug错误是:
$(".toggle_block").toggleElements is not a function
className:'toggler'
它的缩小版本在jsfiddle链接上。 http://jsfiddle.net/cHjMD/
每当我遇到冲突错误时,我都会使用$.noConflict();
删除它,有时它也会解决我的错误。但这次它没有帮助我。我想永久解决这个问题。在这里我也评论了noconflict代码。
请求请不要提供我读取noConflict功能的链接。我已多次阅读。如果你以更好的方式定义,那么我会很高兴。
答案 0 :(得分:1)
更改
$(document).ready(function() {
到
jQuery(document).ready(function($){
在javascript中,$不是特殊字符 - 与PHP不同,它表示变量的开头,在javacript中它只是另一个字符,可以用作任何变量的一部分。 jQuery决定使用变量var $作为jQuery对象的快捷方式。同样,因为$不是jQuery的特殊保留字,所以任何库或脚本也可能尝试使用它,这将导致冲突。
$ .noConflict();函数告诉jQuery放弃对$变量的控制,并将其恢复到其他库使用它。在你调用它之后,$不再代表jQuery。这就是您收到错误消息的原因。
我上面发布的解决方案有效,因为它不使用$ alias来设置document.ready函数,而是使用完整的jQuery对象。此外,ready()函数作为参数传递jQuery对象...因此,通过使用$作为参数名称,$ variable现在再次表示jQuery,但仅在document.ready函数的范围内。
您在jsfiddle中链接到的库已正确设置为使用无冲突模式,因此可能存在冲突库,但永远不会告诉jquery使用无冲突模式。尝试在文档上方添加noconflict调用.IE IE
jQuery.noConflict();
jQuery(document).ready(function($){