【问题标题】:Very weird jQuery error非常奇怪的 jQuery 错误
【发布时间】:2012-12-05 01:50:04
【问题描述】:

所以我的代码 在我的网站上正常工作:

$("#usr").load("somepage.php",{var1:var1,var2:var2});

但是自从我在导航栏中更改了一些代码后,jQuery 的行为就变得非常奇怪。第一个主要问题是这一行:

var w = $(window).width();

返回错误:object [global] has no method "width()"

这似乎无关紧要,因为页面上的所有元素都出现了该错误(好像它仍在执行,因为仍在放置元素)......但后来我来到了实现的页面第一行代码,我遇到了以下错误:

Cannot call method "load()" of null

果然,我检查了控制台,$("#usr")返回null,但是我可以看到页面中的HTML行,inline id为usr

这会导致问题,因为我需要从该页面加载数据才能使页面正常运行。但它变得更加陌生。我以为我会尝试一个简单的发布请求并获取数据并使用document.getElementById("usr").innerHTML = ... 作为替代,但我从这一行得到以下错误:

$.post("somepage.php",{var1:var1,var2:var2},function(data){
    document.getElementById("usr").innerHTML = data;
});

错误:

Uncaught TypeError: Object function $(el){if(!el)return null;if(el.htmlElement)return Garbage.collect(el);if([window,document].contains(el))return el;var type=$type(el);if(type=='string'){el=document.getElementById(el);type=(el)?'element':false}if(type!='element')return null;if(el.htmlElement)return Garbage.collect(el);if(['object','embed'].contains(el.tagName.toLowerCase()))return el;$extend(el,Element.prototype);el.htmlElement=function(){};return Garbage.collect(el)} has no method 'post'

jQuery 到底是怎么回事?

我正在从 googleapis 导入 1.8.2

【问题讨论】:

    标签: javascript jquery html ajax


    【解决方案1】:

    这听起来很多,就像您正在加载 Prototype 或 MooTools 或其他东西以及 jQuery,所以 Prototype/MooTools/whatever 正在接管 $ 符号。

    如果发生这种情况,并且您需要其他库,则可以使用jQuery.noConflict()。然后你要么使用符号jQuery 而不是$ 作为你的jQuery 东西,或者你把你所有的jQuery 代码放到一个你传递给jQuery.noConflict 的函数中并接受$ 作为参数,像这样:

    // Out here, $ !== jQuery
    jQuery.noConflict(function($) {
        // In here, $ === jQuery
    });
    

    或者你可以自己做:

    // Out here, $ !== jQuery
    jQuery.noConflict();
    (function($) {
        // In here, $ === jQuery
    })(jQuery);
    

    ready 还将 jQuery 对象传递给函数,如果您已经在使用 ready

    【讨论】:

    • @David 看看jQuery.noConflict
    • jQuery 替换$ 没问题!谢谢!当它允许我时,我会接受它;)
    • @David:IMO,唯一真正的解决方案是加载多个DOM操作库。
    • 事实证明,我所做的导航栏编辑需要MooTools ugh。
    • @David:只需在 jQuery 中重新制作它,或者在 MooTools 中重做您的其他代码。您正在加载许多重叠的功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多