亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? prototype.js

?? blog,介紹:ui層是用ext做的
?? JS
?? 第 1 頁 / 共 5 頁
字號:
function $$() {  return Selector.findChildElements(document, $A(arguments));}var Form = {  reset: function(form) {    $(form).reset();    return form;  },  serializeElements: function(elements, getHash) {    var data = elements.inject({}, function(result, element) {      if (!element.disabled && element.name) {        var key = element.name, value = $(element).getValue();        if (value != undefined) {          if (result[key]) {            if (result[key].constructor != Array) result[key] = [result[key]];            result[key].push(value);          }          else result[key] = value;        }      }      return result;    });    return getHash ? data : Hash.toQueryString(data);  }};Form.Methods = {  serialize: function(form, getHash) {    return Form.serializeElements(Form.getElements(form), getHash);  },  getElements: function(form) {    return $A($(form).getElementsByTagName('*')).inject([],      function(elements, child) {        if (Form.Element.Serializers[child.tagName.toLowerCase()])          elements.push(Element.extend(child));        return elements;      }    );  },  getInputs: function(form, typeName, name) {    form = $(form);    var inputs = form.getElementsByTagName('input');    if (!typeName && !name) return $A(inputs).map(Element.extend);    for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) {      var input = inputs[i];      if ((typeName && input.type != typeName) || (name && input.name != name))        continue;      matchingInputs.push(Element.extend(input));    }    return matchingInputs;  },  disable: function(form) {    form = $(form);    form.getElements().each(function(element) {      element.blur();      element.disabled = 'true';    });    return form;  },  enable: function(form) {    form = $(form);    form.getElements().each(function(element) {      element.disabled = '';    });    return form;  },  findFirstElement: function(form) {    return $(form).getElements().find(function(element) {      return element.type != 'hidden' && !element.disabled &&        ['input', 'select', 'textarea'].include(element.tagName.toLowerCase());    });  },  focusFirstElement: function(form) {    form = $(form);    form.findFirstElement().activate();    return form;  }}Object.extend(Form, Form.Methods);/*--------------------------------------------------------------------------*/Form.Element = {  focus: function(element) {    $(element).focus();    return element;  },  select: function(element) {    $(element).select();    return element;  }}Form.Element.Methods = {  serialize: function(element) {    element = $(element);    if (!element.disabled && element.name) {      var value = element.getValue();      if (value != undefined) {        var pair = {};        pair[element.name] = value;        return Hash.toQueryString(pair);      }    }    return '';  },  getValue: function(element) {    element = $(element);    var method = element.tagName.toLowerCase();    return Form.Element.Serializers[method](element);  },  clear: function(element) {    $(element).value = '';    return element;  },  present: function(element) {    return $(element).value != '';  },  activate: function(element) {    element = $(element);    element.focus();    if (element.select && ( element.tagName.toLowerCase() != 'input' ||      !['button', 'reset', 'submit'].include(element.type) ) )      element.select();    return element;  },  disable: function(element) {    element = $(element);    element.disabled = true;    return element;  },  enable: function(element) {    element = $(element);    element.blur();    element.disabled = false;    return element;  }}Object.extend(Form.Element, Form.Element.Methods);var Field = Form.Element;var $F = Form.Element.getValue;/*--------------------------------------------------------------------------*/Form.Element.Serializers = {  input: function(element) {    switch (element.type.toLowerCase()) {      case 'checkbox':      case 'radio':        return Form.Element.Serializers.inputSelector(element);      default:        return Form.Element.Serializers.textarea(element);    }  },  inputSelector: function(element) {    return element.checked ? element.value : null;  },  textarea: function(element) {    return element.value;  },  select: function(element) {    return this[element.type == 'select-one' ?      'selectOne' : 'selectMany'](element);  },  selectOne: function(element) {    var index = element.selectedIndex;    return index >= 0 ? this.optionValue(element.options[index]) : null;  },  selectMany: function(element) {    var values, length = element.length;    if (!length) return null;    for (var i = 0, values = []; i < length; i++) {      var opt = element.options[i];      if (opt.selected) values.push(this.optionValue(opt));    }    return values;  },  optionValue: function(opt) {    // extend element because hasAttribute may not be native    return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text;  }}/*--------------------------------------------------------------------------*/Abstract.TimedObserver = function() {}Abstract.TimedObserver.prototype = {  initialize: function(element, frequency, callback) {    this.frequency = frequency;    this.element   = $(element);    this.callback  = callback;    this.lastValue = this.getValue();    this.registerCallback();  },  registerCallback: function() {    setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);  },  onTimerEvent: function() {    var value = this.getValue();    var changed = ('string' == typeof this.lastValue && 'string' == typeof value      ? this.lastValue != value : String(this.lastValue) != String(value));    if (changed) {      this.callback(this.element, value);      this.lastValue = value;    }  }}Form.Element.Observer = Class.create();Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {  getValue: function() {    return Form.Element.getValue(this.element);  }});Form.Observer = Class.create();Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {  getValue: function() {    return Form.serialize(this.element);  }});/*--------------------------------------------------------------------------*/Abstract.EventObserver = function() {}Abstract.EventObserver.prototype = {  initialize: function(element, callback) {    this.element  = $(element);    this.callback = callback;    this.lastValue = this.getValue();    if (this.element.tagName.toLowerCase() == 'form')      this.registerFormCallbacks();    else      this.registerCallback(this.element);  },  onElementEvent: function() {    var value = this.getValue();    if (this.lastValue != value) {      this.callback(this.element, value);      this.lastValue = value;    }  },  registerFormCallbacks: function() {    Form.getElements(this.element).each(this.registerCallback.bind(this));  },  registerCallback: function(element) {    if (element.type) {      switch (element.type.toLowerCase()) {        case 'checkbox':        case 'radio':          Event.observe(element, 'click', this.onElementEvent.bind(this));          break;        default:          Event.observe(element, 'change', this.onElementEvent.bind(this));          break;      }    }  }}Form.Element.EventObserver = Class.create();Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {  getValue: function() {    return Form.Element.getValue(this.element);  }});Form.EventObserver = Class.create();Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {  getValue: function() {    return Form.serialize(this.element);  }});if (!window.Event) {  var Event = new Object();}Object.extend(Event, {  KEY_BACKSPACE: 8,  KEY_TAB:       9,  KEY_RETURN:   13,  KEY_ESC:      27,  KEY_LEFT:     37,  KEY_UP:       38,  KEY_RIGHT:    39,  KEY_DOWN:     40,  KEY_DELETE:   46,  KEY_HOME:     36,  KEY_END:      35,  KEY_PAGEUP:   33,  KEY_PAGEDOWN: 34,  element: function(event) {    return event.target || event.srcElement;  },  isLeftClick: function(event) {    return (((event.which) && (event.which == 1)) ||            ((event.button) && (event.button == 1)));  },  pointerX: function(event) {    return event.pageX || (event.clientX +      (document.documentElement.scrollLeft || document.body.scrollLeft));  },  pointerY: function(event) {    return event.pageY || (event.clientY +      (document.documentElement.scrollTop || document.body.scrollTop));  },  stop: function(event) {    if (event.preventDefault) {      event.preventDefault();      event.stopPropagation();    } else {      event.returnValue = false;      event.cancelBubble = true;    }  },  // find the first node with the given tagName, starting from the  // node the event was triggered on; traverses the DOM upwards  findElement: function(event, tagName) {    var element = Event.element(event);    while (element.parentNode && (!element.tagName ||        (element.tagName.toUpperCase() != tagName.toUpperCase())))      element = element.parentNode;    return element;  },  observers: false,  _observeAndCache: function(element, name, observer, useCapture) {    if (!this.observers) this.observers = [];    if (element.addEventListener) {      this.observers.push([element, name, observer, useCapture]);      element.addEventListener(name, observer, useCapture);    } else if (element.attachEvent) {      this.observers.push([element, name, observer, useCapture]);      element.attachEvent('on' + name, observer);    }  },  unloadCache: function() {    if (!Event.observers) return;    for (var i = 0, length = Event.observers.length; i < length; i++) {      Event.stopObserving.apply(this, Event.observers[i]);      Event.observers[i][0] = null;    }    Event.observers = false;  },  observe: function(element, name, observer, useCapture) {    element = $(element);    useCapture = useCapture || false;    if (name == 'keypress' &&        (navigator.appVersion.match(/Konqueror|Safari|KHTML/)        || element.attachEvent))      name = 'keydown';    Event._observeAndCache(element, name, observer, useCapture);  },  stopObserving: function(element, name, observer, useCapture) {    element = $(element);    useCapture = useCapture || false;    if (name == 'keypress' &&        (navigator.appVersion.match(/Konqueror|Safari|KHTML/)        || element.detachEvent))      name = 'keydown';    if (element.removeEventListener) {      element.removeEventListener(name, observer, useCapture);    } else if (element.detachEvent) {      try {        element.detachEvent('on' + name, observer);      } catch (e) {}    }  }});/* prevent memory leaks in IE */if (navigator.appVersion.match(/\bMSIE\b/))  Event.observe(window, 'unload', Event.unloadCache, false);var Position = {  // set to true if needed, warning: firefox performance problems  // NOT neeeded for page scrolling, only if draggable contained in  // scrollable elements  includeScrollOffsets: false,  // must be called before calling withinIncludingScrolloffset, every time the  // page is scrolled  prepare: function() {    this.deltaX =  window.pageXOffset                || document.documentElement.scrollLeft                || document.body.scrollLeft                || 0;    this.deltaY =  window.pageYOffset                || document.documentElement.scrollTop                || document.body.scrollTop                || 0;  },  realOffset: function(element) {    var valueT = 0, valueL = 0;    do {      valueT += element.scrollTop  || 0;      valueL += element.scrollLeft || 0;      element = element.parentNode;    } while (element);    return [valueL, valueT];  },  cumulativeOffset: function(element) {    var valueT = 0, valueL = 0;    do {      valueT += element.offsetTop  || 0;      valueL += element.offsetLeft || 0;      element = element.offsetParent;    } while (element);    return [valueL, valueT];  },  positionedOffset: function(element) {    var valueT = 0, valueL = 0;    do {   

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91高潮流白浆在线麻豆| 日韩视频永久免费| 欧美一区二区三区视频| 国产肉丝袜一区二区| 香蕉影视欧美成人| k8久久久一区二区三区| 欧美一区二区精品| 亚洲成在线观看| 91美女片黄在线| 国产精品日日摸夜夜摸av| 九九九精品视频| 91精品国产黑色紧身裤美女| 亚洲精品免费在线| 成人免费精品视频| 国产欧美日韩在线视频| 久久国产精品99精品国产| 欧美日韩在线精品一区二区三区激情| 国产欧美1区2区3区| 精品一区二区三区在线播放视频 | 一区二区国产盗摄色噜噜| 国产一区二区三区黄视频 | 亚洲成人777| 在线观看网站黄不卡| 国产精品久久久久久久岛一牛影视 | 成人精品视频一区| 国产日韩欧美高清| 国产成人综合在线观看| 精品成a人在线观看| 激情深爱一区二区| 久久久99精品免费观看不卡| 久久精品国产精品亚洲精品| 欧美高清性hdvideosex| 婷婷亚洲久悠悠色悠在线播放| 色老综合老女人久久久| 亚洲精选免费视频| 在线观看欧美精品| 亚洲一二三四在线观看| 欧美体内she精高潮| 午夜欧美视频在线观看| 91精品国产欧美一区二区成人| 日本在线不卡视频| 欧美成人三级电影在线| 国产精品一线二线三线| 中文字幕第一区第二区| 色综合天天视频在线观看| 亚洲国产乱码最新视频 | 免费观看在线综合色| 日韩午夜中文字幕| 国产一区不卡精品| 国产精品乱人伦| 91美女在线看| 肉丝袜脚交视频一区二区| 日韩三级视频在线观看| 国产精品69毛片高清亚洲| 亚洲欧美影音先锋| 欧美精品粉嫩高潮一区二区| 国产综合色精品一区二区三区| 日本一区二区免费在线观看视频| 色先锋资源久久综合| 日本不卡中文字幕| 欧美极品另类videosde| 欧美调教femdomvk| 国产乱子伦视频一区二区三区| 亚洲天堂福利av| 正在播放亚洲一区| 成人精品视频一区二区三区| 亚洲成av人影院| 中文字幕av一区二区三区| 欧美在线|欧美| 国产激情一区二区三区| 亚洲国产日韩在线一区模特| 久久久久久久综合日本| 欧美日韩一区二区在线观看视频| 黄页视频在线91| 亚洲18影院在线观看| 国产精品热久久久久夜色精品三区| 欧美三级三级三级| av电影一区二区| 老司机一区二区| 亚洲国产精品久久久久秋霞影院| 久久香蕉国产线看观看99| 欧美日韩国产区一| 91在线视频18| 国产成人免费视频网站高清观看视频| 亚洲亚洲人成综合网络| 中文字幕一区二区视频| 精品国产伦一区二区三区免费| 91老师国产黑色丝袜在线| 国产精品夜夜嗨| 久久精品噜噜噜成人av农村| 亚洲一二三四在线| 亚洲男女一区二区三区| 久久久亚洲欧洲日产国码αv| 欧美麻豆精品久久久久久| 99久久夜色精品国产网站| 国产一区二区精品久久99| 强制捆绑调教一区二区| 性欧美大战久久久久久久久| 亚洲同性gay激情无套| 欧美激情在线一区二区三区| 精品久久五月天| 欧美一区二区啪啪| 91精品啪在线观看国产60岁| 欧美亚洲国产bt| 在线观看亚洲成人| 欧美综合亚洲图片综合区| 色老汉av一区二区三区| 91福利区一区二区三区| 色综合久久中文综合久久97| 91免费观看在线| 91丨porny丨蝌蚪视频| 盗摄精品av一区二区三区| 国产91精品精华液一区二区三区 | 亚洲蜜臀av乱码久久精品 | 色中色一区二区| 成人激情午夜影院| 大胆亚洲人体视频| 成人免费黄色大片| k8久久久一区二区三区| 99久久国产综合精品色伊| 91蜜桃视频在线| 欧美丝袜自拍制服另类| 7777女厕盗摄久久久| 日韩一区二区中文字幕| 精品免费国产二区三区| 2020国产成人综合网| 久久精品在线观看| 国产精品欧美一级免费| 亚洲欧美影音先锋| 午夜精品免费在线观看| 秋霞影院一区二区| 国产精品影视在线观看| 97精品久久久午夜一区二区三区| 91一区一区三区| 欧美日韩精品欧美日韩精品一| 日韩一级免费观看| 国产欧美1区2区3区| 亚洲狼人国产精品| 青青国产91久久久久久| 国产91高潮流白浆在线麻豆| 91国产免费观看| 欧美变态tickling挠脚心| 国产精品二三区| 亚洲制服丝袜在线| 久久疯狂做爰流白浆xx| 成人开心网精品视频| 欧美性色黄大片手机版| 精品久久久久久久人人人人传媒| 国产精品区一区二区三| 亚洲成人你懂的| 国产91精品免费| 欧美日韩国产免费| 中文字幕av资源一区| 日本欧美韩国一区三区| 成人午夜免费视频| 51久久夜色精品国产麻豆| 中日韩av电影| 免费成人性网站| 色婷婷亚洲精品| 久久精品人人做| 天天射综合影视| 99综合电影在线视频| 日韩欧美一二三区| 一区二区三区四区视频精品免费| 久久机这里只有精品| 欧洲精品一区二区| 国产精品视频免费| 韩国欧美一区二区| 欧美三级视频在线| 亚洲视频每日更新| 国产盗摄精品一区二区三区在线| 欧美色图片你懂的| 最新日韩av在线| 国产成人综合在线| 精品久久免费看| 蜜臀av国产精品久久久久 | 国产日韩一级二级三级| 日一区二区三区| 欧洲精品中文字幕| 亚洲免费在线看| 国产成人av网站| 精品国产乱码久久久久久图片 | 亚洲黄色免费网站| 福利视频网站一区二区三区| 日韩欧美一区二区久久婷婷| 午夜精品久久久久久久蜜桃app| 99久久99久久精品国产片果冻| 久久久久国产精品厨房| 狠狠色伊人亚洲综合成人| 欧美一二三区精品| 日韩激情一二三区| 欧美巨大另类极品videosbest| 亚洲欧美激情在线| 91麻豆免费观看| 日韩美女久久久| 91国偷自产一区二区三区观看| 亚洲欧美偷拍另类a∨色屁股| 91原创在线视频| 亚洲男人的天堂在线aⅴ视频| 色狠狠色噜噜噜综合网|