日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

miniui 加载文件时会做的一些事情

發布時間:2024/4/17 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 miniui 加载文件时会做的一些事情 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

開始學習miniui了,雖然代碼里有很多0o1l之類的,大概學一學還是可以的吧。

首先在miniui.js看一下有文檔加載時會自動執行什么。先列舉一下。

1、

OO00(window, "resize", function($) {var C = mini.__windowResizes;for (var _ = 0,A = C.length; _ < A; _++) {var B = C[_];B[0][Oloool](B[1], $)} });

2、

mini_onload = function($) {OO00(window, "resize", mini_onresize) }; OO00(window, "load", mini_onload);

3、

OO00(window, "unload", mini_unload);

4、

(function() {if (hasOn) {var A = mini.getTopWindow();if (A) {function $(_, $) {if ($ == document);else jQuery(document).trigger("mousedown")}jQuery(A.document)[O10lO0]("topmousedown", $);function _(_) {var $ = A.jQuery;if ($) $(A.document).trigger("topmousedown", [document])}jQuery(document)[O10lO0]("mousedown", _);jQuery(window)[O10lO0]("unload",function() {jQuery(A.document).off("topmousedown", $);jQuery(document).off("mousedown", _)})}} })();

5、

var DateUtil = {}; (function() {DateUtil.dateFormat = {days: {names: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],namesAbbr: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],namesShort: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]},months: {names: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", ""],namesAbbr: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", ""]},AM: ["AM", "am", "AM"],PM: ["PM", "pm", "PM"],patterns: {d: "M/d/yyyy",D: "dddd,MMMM dd,yyyy",F: "dddd,MMMM dd,yyyy h:mm:ss tt",g: "M/d/yyyy h:mm tt",G: "M/d/yyyy h:mm:ss tt",m: "MMMM dd",M: "MMMM dd",s: "yyyy'-'MM'-'dd'T'HH':'mm':'ss",t: "h:mm tt",T: "h:mm:ss tt",u: "yyyy'-'MM'-'dd HH':'mm':'ss'Z'",y: "MMMM,yyyy",Y: "MMMM,yyyy"},"/": "/",":": ":",firstDay: 0};

6、

(function() {var A = {tabindex: "tabIndex",readonly: "readOnly","for": "htmlFor","class": "className",maxlength: "maxLength",cellspacing: "cellSpacing",cellpadding: "cellPadding",rowspan: "rowSpan",colspan: "colSpan",usemap: "useMap",frameborder: "frameBorder",contenteditable: "contentEditable"},$ = document.createElement("div");$.setAttribute("class", "t");var _ = $.className === "t";mini.setAttr = function(B, C, $) {B.setAttribute(_ ? C: (A[C] || C), $)};mini.getAttr = function(D, E) {if (E == "height") return jQuery(D).attr("height");if (E == "value" && (isIE6 || isIE7)) {var $ = D.attributes[E];return $ ? $.value: null}if (!D.getAttribute) return null;var C = D.getAttribute(_ ? E: (A[E] || E));if (typeof C == "function" || E == "maxLength") {var F = D.attributes[E];if (F) C = F.value}if (!C && E == "onload") {var B = D.getAttributeNode ? D.getAttributeNode(E) : null;if (B) C = B.nodeValue}return C} })();

?

還有一些我認為是在jQuery加載完畢之后執行:

1、

jQuery(function() {if (document.body) document.body.style.visibility = "visible";if (isFirefox) oO1l(document.documentElement, "ff");mini.updateDevice();if (mini.autoParse) setTimeout(function() {var _ = document.documentElement;if ((isIE6 || isIE7) && (loo10o(document.body, "overflow") == "hidden" || (_ && loo10o(_, "overflow") == "hidden"))) {jQuery(document.body).css("overflow", "visible");if (_) jQuery(_).css("overflow", "visible")}mini.__LastWindowWidth = document.documentElement.clientWidth;mini.__LastWindowHeight = document.documentElement.clientHeight;var $ = new Date();mini.isReady = true;mini.parse(null, mini_layoutOnParse);OlO0o1()},1) });

2、

jQuery(function() {setTimeout(function() {var A = mini.getComponents();for (var B = 0,C = A.length; B < C; B++) {var _ = A[B];if (_ instanceof Olo01l) {var $ = _[o000l1]().value;if (_.value !== $) _.value = $}}},300) });

3、

jQuery(function() {setTimeout(function() {try {var $ = mini.getActiveElement();if ($) {var A = jQuery($).closest(".mini-buttonedit,.mini-textbox");if (A.length) {var B = mini.get(A[0]);if (B) {B[lll0O1]();B[o1OOlO]()}}}} catch(_) {}},100) });

然后說一下上面的1,2,3。

它們會先向windows對象 apply事件 resize、onload、unload

創建委托添加到mini.listeners中
通過OO00 :

oOl11 = “findListener”
OO00 = function(_, D, B, A) {_ = l1O1(_);A = A || _;if (!_ || !D || !B || !A) return false;var C = mini[oOl11](_, D, B, A);//判斷該listener是否已經存在if (C) return false;var $ = mini.createDelegate(B, A);//如果不存在就創建委托,通過apply方法通過對象A來執行,這時候A為windowmini.listeners.push([_, D, B, A, $]);//添加到mini.listeners數組中if (mini.isFirefox && D == "mousewheel") D = "DOMMouseScroll";jQuery(_).bind(D, $) }; l1O1在這里沒什么用,還是返回window本身,看一下代碼:
//找到該元素,B可以是元素,也可以是id/#id //既然document.getElementById() 不能找到元素, //為什么還要通過后續的操作,去遍歷子節點判斷id呢? //可能是構建了一個節點,并沒有添加到DOM上。這樣子的情況下B為子節點的id,_為父節點 l1O1 = function(B, _) {if (typeof B == "string") {if (B.charAt(0) == "#") B = B.substr(1);var $ = document.getElementById(B);if ($) return $;if (_ && !O1O0(document.body, _)) {var D = _.getElementsByTagName("*");for (var A = 0,C = D.length; A < C; A++) {$ = D[A];if ($.id == B) return $}$ = null}return $} else return B };

然后判斷事件是否已經存在:

//判斷該listener是否已經存在 findListener: function(A, F, C, B) {A = l1O1(A);B = B || A;if (!A || !F || !C || !B) return false;var _ = mini._getListeners();for (var E = _.length - 1; E >= 0; E--) {var D = _[E];try {if (D[0] == A && D[1] == F && D[2] == C && D[3] == B) return D} catch($) {}}}, _getListeners: function() {var $ = mini.listeners;//是mini對象的數組對象return $},

如果沒有存在,就創建委托,并保存它。【注意apply的用法,$是window,還是不清楚通過這樣子怎么觸發對應的事件處理程序】

/創建委托,并通過$對象來執行該方法,返回的是一個方法 createDelegate: function(_, $) {if (!_) return function() {};return function() {return _.apply($, arguments)}},

通過這樣,在不添加任何js代碼程序的情況下,的確綁定好了對應的事件處理程序。

比較有趣的是jQuery中的方法1的處理,里面有mini.parse()的調用。如果我們能夠在此方法執行完畢之后再執行自己的js代碼,那么我們就不用再寫mini.parse()了。

下次再說說自己的mini.parse()和源文件中的mini.parse()的調用。其他一些執行的方法也之后看看做了一些什么事情。

good night.



轉載于:https://www.cnblogs.com/jianIsTheBest/p/11210503.html

總結

以上是生活随笔為你收集整理的miniui 加载文件时会做的一些事情的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。