📄 jquery-bridge.js
字号:
/*
* Ext JS Library 2.2.1
* Copyright(c) 2006-2009, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
if(typeof jQuery == "undefined"){
throw "Unable to load Ext, jQuery not found.";
}
(function(){
var libFlyweight;
Ext.lib.Dom = {
getViewWidth : function(full){
// jQuery doesn't report full window size on document query, so max both
return full ? Math.max(jQuery(document).width(),jQuery(window).width()) : jQuery(window).width();
},
getViewHeight : function(full){
// jQuery doesn't report full window size on document query, so max both
return full ? Math.max(jQuery(document).height(),jQuery(window).height()) : jQuery(window).height();
},
isAncestor : function(p, c){
p = Ext.getDom(p);
c = Ext.getDom(c);
if (!p || !c) {return false;}
if(p.contains && !Ext.isSafari) {
return p.contains(c);
}else if(p.compareDocumentPosition) {
return !!(p.compareDocumentPosition(c) & 16);
}else{
var parent = c.parentNode;
while (parent) {
if (parent == p) {
return true;
}
else if (!parent.tagName || parent.tagName.toUpperCase() == "HTML") {
return false;
}
parent = parent.parentNode;
}
return false;
}
},
getRegion : function(el){
return Ext.lib.Region.getRegion(el);
},
//////////////////////////////////////////////////////////////////////////////////////
// Use of jQuery.offset() removed to promote consistent behavior across libs.
// JVS 05/23/07
//////////////////////////////////////////////////////////////////////////////////////
getY : function(el){
return this.getXY(el)[1];
},
getX : function(el){
return this.getXY(el)[0];
},
getXY : function(el) {
var p, pe, b, scroll, bd = (document.body || document.documentElement);
el = Ext.getDom(el);
if(el == bd){
return [0, 0];
}
if (el.getBoundingClientRect) {
b = el.getBoundingClientRect();
scroll = fly(document).getScroll();
return [b.left + scroll.left, b.top + scroll.top];
}
var x = 0, y = 0;
p = el;
var hasAbsolute = fly(el).getStyle("position") == "absolute";
while (p) {
x += p.offsetLeft;
y += p.offsetTop;
if (!hasAbsolute && fly(p).getStyle("position") == "absolute") {
hasAbsolute = true;
}
if (Ext.isGecko) {
pe = fly(p);
var bt = parseInt(pe.getStyle("borderTopWidth"), 10) || 0;
var bl = parseInt(pe.getStyle("borderLeftWidth"), 10) || 0;
x += bl;
y += bt;
if (p != el && pe.getStyle('overflow') != 'visible') {
x += bl;
y += bt;
}
}
p = p.offsetParent;
}
if (Ext.isSafari && hasAbsolute) {
x -= bd.offsetLeft;
y -= bd.offsetTop;
}
if (Ext.isGecko && !hasAbsolute) {
var dbd = fly(bd);
x += parseInt(dbd.getStyle("borderLeftWidth"), 10) || 0;
y += parseInt(dbd.getStyle("borderTopWidth"), 10) || 0;
}
p = el.parentNode;
while (p && p != bd) {
if (!Ext.isOpera || (p.tagName != 'TR' && fly(p).getStyle("display") != "inline")) {
x -= p.scrollLeft;
y -= p.scrollTop;
}
p = p.parentNode;
}
return [x, y];
},
setXY : function(el, xy){
el = Ext.fly(el, '_setXY');
el.position();
var pts = el.translatePoints(xy);
if(xy[0] !== false){
el.dom.style.left = pts.left + "px";
}
if(xy[1] !== false){
el.dom.style.top = pts.top + "px";
}
},
setX : function(el, x){
this.setXY(el, [x, false]);
},
setY : function(el, y){
this.setXY(el, [false, y]);
}
};
// all lib flyweight calls use their own flyweight to prevent collisions with developer flyweights
function fly(el){
if(!libFlyweight){
libFlyweight = new Ext.Element.Flyweight();
}
libFlyweight.dom = el;
return libFlyweight;
}
Ext.lib.Event = {
getPageX : function(e){
e = e.browserEvent || e;
return e.pageX;
},
getPageY : function(e){
e = e.browserEvent || e;
return e.pageY;
},
getXY : function(e){
e = e.browserEvent || e;
return [e.pageX, e.pageY];
},
getTarget : function(e){
return e.target;
},
// all Ext events will go through event manager which provides scoping
on : function(el, eventName, fn, scope, override){
jQuery(el).bind(eventName, fn);
},
un : function(el, eventName, fn){
jQuery(el).unbind(eventName, fn);
},
purgeElement : function(el){
jQuery(el).unbind();
},
preventDefault : function(e){
e = e.browserEvent || e;
if(e.preventDefault){
e.preventDefault();
}else{
e.returnValue = false;
}
},
stopPropagation : function(e){
e = e.browserEvent || e;
if(e.stopPropagation){
e.stopPropagation();
}else{
e.cancelBubble = true;
}
},
stopEvent : function(e){
this.preventDefault(e);
this.stopPropagation(e);
},
onAvailable : function(id, fn, scope){
var start = new Date();
var f = function(){
if(start.getElapsed() > 10000){
clearInterval(iid);
}
var el = document.getElementById(id);
if(el){
clearInterval(iid);
fn.call(scope||window, el);
}
};
var iid = setInterval(f, 50);
},
resolveTextNode: function(node) {
if (node && 3 == node.nodeType) {
return node.parentNode;
} else {
return node;
}
},
getRelatedTarget: function(ev) {
ev = ev.browserEvent || ev;
var t = ev.relatedTarget;
if (!t) {
if (ev.type == "mouseout") {
t = ev.toElement;
} else if (ev.type == "mouseover") {
t = ev.fromElement;
}
}
return this.resolveTextNode(t);
}
};
Ext.lib.Ajax = function(){
var createComplete = function(cb){
return function(xhr, status){
if((status == 'error' || status == 'timeout') && cb.failure){
cb.failure.call(cb.scope||window, {
responseText: xhr.responseText,
responseXML : xhr.responseXML,
argument: cb.argument
});
}else if(cb.success){
cb.success.call(cb.scope||window, {
responseText: xhr.responseText,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -