jQuery.noConflict()在另一个脚本中导致错误

时间:2011-05-11 18:00:00

标签: javascript jquery

我将此代码用于此插件http://unwrongest.com/projects/defaultvalue/

// <![CDATA[
    $.noConflict();
    jQuery(document).ready(function(){
        jQuery('.defaultval').defaultValue();
    }); 
// ]]>

$.noConflict();在此行的另一个脚本中给我$ is not a function

$( "#city" ).autocomplete({ 

“autocomplete”用于jquery UI自动完成插件http://jqueryui.com/demos/autocomplete/#remote-jsonp

如何解决此问题?删除$.noConflict();似乎解决了它,但我想离开,因为我认为这是有原因的。

4 个答案:

答案 0 :(得分:3)

noConflict函数会删除jQuery的$别名,以允许其他库使用$代替。

您不能将noConflict与使用$的代码一起使用,除非您通过编写$

将该代码包装在具有自己的(function($) { ... })(jQuery);别名的函数中

答案 1 :(得分:2)

你需要将自动完成功能放在它自己的私有闭包中:

var jQueryVariableForMyUseOnly = jQuery.noConflict();

(function($){

    $(...).autocomplete(...);

})(jQueryVariableForMyUseOnly);

答案 2 :(得分:2)

只需改变一下:

$( "#city" ).autocomplete({

到此:

jQuery( "#city" ).autocomplete({

noConflict删除$上的别名,但jQuery仍然存在。

编辑:或者,您可以将别名分配给其他内容,例如:

$j = $.noConflict();
$j("#city").autocomplete({

答案 3 :(得分:0)

将其更改为:

jQuery.noConflict();

编辑:重新阅读你的问题。这不会解决任何问题。这里没什么可看的。