我有一组特殊的文件用于切换效果。当我分别使用这两个文件时,它对我有效。但是我用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函数的链接。我已经读过很多次了。如果你用更好的方式来定义,我会很高兴。
发布于 2012-01-21 03:46:28
变化
$(document).ready(function() {至
jQuery(document).ready(function($){在javascript中,$不是一个特殊的字符-不像PHP中它表示变量的开始,在javacript中它只是另一个字符,可以用作任何变量的一部分。jQuery决定使用变量var $作为jQuery对象的快捷方式。同样,由于$不是jQuery的特殊保留字,任何库或脚本也可能尝试使用它,这将导致冲突。
$.noConflict();函数告诉jQuery放弃对$变量的控制,并将其恢复到其他库正在使用的任何位置。在你调用它之后,$不再代表jQuery。这就是您收到错误消息的原因。
我在上面发布的解决方案之所以有效,是因为它不使用$别名来设置document.ready函数,而是使用完整的jQuery对象。此外,ready()函数将jQuery对象作为参数传递...因此,通过使用$作为参数名,$变量现在再次表示jQuery,但仅在document.ready函数的范围内。
您在jsfiddle中链接的库已正确设置为使用无冲突模式,因此您可能有一个冲突库,但从未告诉jquery使用无冲突模式。尝试将无冲突调用添加到文档ready之上..即
jQuery.noConflict();
jQuery(document).ready(function($){https://stackoverflow.com/questions/8946949
复制相似问题