'$ .fn'为null或不是对象

时间:2010-04-27 13:02:29

标签: javascript jquery prototypejs conflict

问题1

错误:Microsoft JScript运行时错误:'$ .fn'为null或不是对象

错误区域:

    $.fn.apply=function(item,content,header){

        $(".featureBox"+item).css('z-index', "1000");
        $("img.featureBox" + item +"top").attr("src",basepath + "box-big-top.jpg");
        $("img.featureBox" + item +"imgcut").attr("src",basepath + "box-big-img"+item+".jpg");
        featureboxcont[item].attr("src",basepath + "box-big-cont.jpg");
        $("img.featureBox" + item +"foot").attr("src",basepath + "box-big-bot2.jpg");
        //$("#NoteModalDialog > #x-dlg-bd > #x-dlg-tab > #acc-ct")

        $("#box"+item+"headtext > .h2div > h2").text(header);
        $("#box"+item+"bottext").css({"top":"181px","width":"205px","font-size":"12px","color":"#ffffff","left":"10"});
        $("#box"+item+"foottext").css({"top":footheight+"px","width":"215px","left":"20"});
        $("#box"+item+"hidden").css({"display":"block"});
        $("#box"+item+"bottext").text(content);
        $("#box"+item+"headtext > .h2div > h2").removeClass("sIFR-replaced");
        callsIFR();
    }

问题2

错误:Microsoft JScript运行时错误:“null”为null或不是对象

错误区域:

$("#innerWrapper").addClass("js-version");

我也在页面上使用protoype.js.

4 个答案:

答案 0 :(得分:2)

听起来你的问题是原型和jQuery都使用$函数/变量名。查看this page,了解如何设置jQuery与原型不冲突。

答案 1 :(得分:1)

如果您在页面上使用jQuery和Prototype,$.fn确实可能在全局范围内未定义。在同一页面上使用jQuery和Prototype的唯一方法是使用jQuery.noConflict并给它一个不同于$的符号,Prototype也使用它。

答案 2 :(得分:0)

为什么申请在申报单上? apply用于通过方法指定。通常你会做这样的事情......

var object1 = {X:"stuff"};

var $.fn = function () {
   /* substitute your method here */
   this.X = this.X || "default";
   alert(this.X);
};

$.fn.apply(object1);

答案 3 :(得分:0)

对于问题1,您可以通过使用

解决与prototype.js的冲突
jQuery.fn.apply = …

然后你避免了两个库之间的冲突。