首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

哪位高手帮小弟我改成jquery的

2012-08-14 
谁帮我改成jquery的?JScript codevar isIE (document.all) ? true : falsevar isIE6 isIE && ([/MSIE

谁帮我改成jquery的?

JScript code
var isIE = (document.all) ? true : false;var isIE6 = isIE && ([/MSIE (\d)\.0/i.exec(navigator.userAgent)][0][1] == 6);var $ = function (id) {    return "string" == typeof id ? document.getElementById(id) : id;};var Class = {    create: function() {        return function() { this.initialize.apply(this, arguments); }    }}var Extend = function(destination, source) {    for (var property in source) {        destination[property] = source[property];    }}var Bind = function(object, fun) {    return function() {        return fun.apply(object, arguments);    }}var Each = function(list, fun){    for (var i = 0, len = list.length; i < len; i++) { fun(list[i], i); }};var Contains = function(a, b){    return a.contains ? a != b && a.contains(b) : !!(a.compareDocumentPosition(b) & 16);}var OverLay = Class.create();OverLay.prototype = {  initialize: function(options) {    this.SetOptions(options);        this.Lay = $(this.options.Lay) || document.body.insertBefore(document.createElement("div"), document.body.childNodes[0]);        this.Color = this.options.Color;    this.Opacity = parseInt(this.options.Opacity);    this.zIndex = parseInt(this.options.zIndex);        with(this.Lay.style){ display = "none"; zIndex = this.zIndex; left = top = 0; position = "fixed"; width = height = "100%"; }        if(isIE6){        this.Lay.style.position = "absolute";        //ie6设置覆盖层大小程序        this._resize = Bind(this, function(){            this.Lay.style.width = Math.max(document.documentElement.scrollWidth, document.documentElement.clientWidth) + "px";            this.Lay.style.height = Math.max(document.documentElement.scrollHeight, document.documentElement.clientHeight) + "px";        });        //遮盖select        this.Lay.innerHTML = '<iframe style="position:absolute;top:0;left:0;width:100%;height:100%;filter:alpha(opacity=0);"></iframe>'    }  },  //设置默认属性  SetOptions: function(options) {    this.options = {//默认值        Lay:        null,//覆盖层对象        Color:        "#fff",//背景色        Opacity:    50,//透明度(0-100)        zIndex:        1000//层叠顺序    };    Extend(this.options, options || {});  },  //显示  Show: function() {    //兼容ie6    if(isIE6){ this._resize(); window.attachEvent("onresize", this._resize); }    //设置样式    with(this.Lay.style){        //设置透明度        isIE ? filter = "alpha(opacity:" + this.Opacity + ")" : opacity = this.Opacity / 100;        backgroundColor = this.Color; display = "block";    }  },  //关闭  Close: function() {    this.Lay.style.display = "none";    if(isIE6){ window.detachEvent("onresize", this._resize); }  }};var LightBox = Class.create();LightBox.prototype = {  initialize: function(box, options) {        this.Box = $(box);//显示层        this.OverLay = new OverLay(options);//覆盖层        this.SetOptions(options);        this.Fixed = !!this.options.Fixed;    this.Over = !!this.options.Over;    this.Center = !!this.options.Center;    this.onShow = this.options.onShow;        this.Box.style.zIndex = this.OverLay.zIndex + 1;    this.Box.style.display = "none";        //兼容ie6用的属性    if(isIE6){        this._top = this._left = 0; this._select = [];        this._fixed = Bind(this, function(){ this.Center ? this.SetCenter() : this.SetFixed(); });    }  },  //设置默认属性  SetOptions: function(options) {    this.options = {//默认值        Over:    true,//是否显示覆盖层        Fixed:    false,//是否固定定位        Center:    false,//是否居中        onShow:    function(){}//显示时执行    };    Extend(this.options, options || {});  },  //兼容ie6的固定定位程序  SetFixed: function(){    this.Box.style.top = document.documentElement.scrollTop - this._top + this.Box.offsetTop + "px";    this.Box.style.left = document.documentElement.scrollLeft - this._left + this.Box.offsetLeft + "px";        this._top = document.documentElement.scrollTop; this._left = document.documentElement.scrollLeft;  },  //兼容ie6的居中定位程序  SetCenter: function(){    this.Box.style.marginTop = document.documentElement.scrollTop - this.Box.offsetHeight / 2 + "px";    this.Box.style.marginLeft = document.documentElement.scrollLeft - this.Box.offsetWidth / 2 + "px";  },  //显示  Show: function(options) {    //固定定位    this.Box.style.position = this.Fixed && !isIE6 ? "fixed" : "absolute";    //覆盖层    this.Over && this.OverLay.Show();        this.Box.style.display = "block";        //居中    if(this.Center){        this.Box.style.top = this.Box.style.left = "50%";        //设置margin        if(this.Fixed){            this.Box.style.marginTop = - this.Box.offsetHeight / 2 + "px";            this.Box.style.marginLeft = - this.Box.offsetWidth / 2 + "px";        }else{            this.SetCenter();        }    }        //兼容ie6    if(isIE6){        if(!this.Over){            //没有覆盖层ie6需要把不在Box上的select隐藏            this._select.length = 0;            Each(document.getElementsByTagName("select"), Bind(this, function(o){                if(!Contains(this.Box, o)){ o.style.visibility = "hidden"; this._select.push(o); }            }))        }        //设置显示位置        this.Center ? this.SetCenter() : this.Fixed && this.SetFixed();        //设置定位        this.Fixed && window.attachEvent("onscroll", this._fixed);    }        this.onShow();  },  //关闭  Close: function() {    this.Box.style.display = "none";    this.OverLay.Close();    if(isIE6){        window.detachEvent("onscroll", this._fixed);        Each(this._select, function(o){ o.style.visibility = "visible"; });    }  }}; 



jquery的lightbox插件只能是图片,不像这个,自己定义想显示什么都可以css不会被破坏

[解决办法]
其实没必要完全要改成用jq方法的,jq只是开发的一种方式,而不是一个行事准则。
而且你这个不在于是不是用jq,而是改成兼容jq就目的达到了。有两种办法:
1.
var $ = function (id) {
return "string" == typeof id ? document.getElementById(id) : id;
};
把这个改成:
var id = function (id) {
return "string" == typeof id ? document.getElementById(id) : id;
};
后边与此相关的全部改掉。
2. 删除
var $ = function (id) {
return "string" == typeof id ? document.getElementById(id) : id;
};
下面的用jq获取元素,但获取之后在改成dom元素。
相比来说,第一个方法比较高效。

热点排行