我正在使用以下jQuery代码:
jQuery(document).ready(function() {
jQuery('#main').click(function(){
jQuery('#box').slideDown();
});
});
上面的代码运行正常,但如果我使用$
代替jQuery
,我会收到以下错误:
TypeError: $ is not a function
我理解这是因为某些冲突,但我在上面的代码中是否有使用$
的方式?
我也试过使用jQuery.noConflict();
,但它仍然会出现相同的错误。
答案 0 :(得分:2)
jQuery(function($) {
$('#main').click(function(){
$('#box').slideDown();
});
});
别名jQuery命名空间
使用其他JavaScript库时,我们可能希望调用$ .noConflict()以避免名称空间困难。调用此函数时,$快捷方式不再可用,每次我们通常写$时都会强制我们编写jQuery。但是,传递给.ready()方法的处理程序可以接受一个参数,该参数传递给全局jQuery对象。这意味着我们可以在.ready()处理程序的上下文中重命名对象,而不会影响其他代码。
答案 1 :(得分:1)
尝试这样,
$.noConflict();
jQuery(document).ready(function($) {
$('#main').click(function(){
$('#box').slideDown();
});
});
答案 2 :(得分:1)
你可以将它包装在一个闭包中:
(function($){
// use $ as jQuery
})(jQuery);
答案 3 :(得分:1)
您可以使用闭包:
(function ($) {
$(document).ready(function () {
$('#main').click(function () {
$('#box').slideDown();
});
});
})(jQuery)
答案 4 :(得分:1)
首先使用noConflict
。
var j = jQuery.noConflict();
然后使用
j(document).ready(function() {
j('#main').click(function(){
j('#box').slideDown();
});
});