我正在使用手风琴,它在载荷上有灰度图像,鼠标在它上面以真实的颜色显示。
我的脚本中J查询的冲突在哪里..
获得error : $ is not a function
<script type="text/javascript" src="js/jquery-1.4.3.min.js"></script>
<script type="text/javascript" src="js/kwicks.js"></script>
<script src="js/greyScale.js"></script>
<script>
$j = jQuery.noConflict();
$j(function () {
$j('.greyScale').hide().fadeIn(1000); // fade in the grayscaled images to avoid visual jump
});
$j(window).load(function () {
// user window.load to ensure images have been loaded
$('.greyScale').greyScale({
fadeTime: 500
// call the plugin with non-defult fadeTime (default: 400ms)
});
});
</script>
<script type="text/javascript">
$().ready(function () {
$('.kwicks').kwicks({
max: 535,
spacing: 10,
sticky: false
});
});
</script>
答案 0 :(得分:3)
将所有脚本代码粘贴在这样的闭包中:
(function($) {
...
}(jQuery));
然后您可以使用$
代替$j
,而且不会发生冲突。
答案 1 :(得分:2)
jQuery.noConflict();
表示jQuery不再使用$
,而是使用$j
,以便释放$
以供其他用途使用。如果你没有在其他任何地方定义$
,它将保持未定义。
如果您有$j = jQuery.noConflict();
,则表示您必须使用$j
(或jQuery
),或者执行以下操作:
(function( $ ) {
$().ready(function() {
$('.kwicks').kwicks({
...
});
});
})(jQuery);
另一方面,如果$
可用,为什么要使用noConflict()
?
答案 2 :(得分:0)
使用.noConflict()后,您将无法使用$访问jQuery对象,因此您应该更改所有jQuery调用。