国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Javascript YUI 讀碼日記之 YAHOO.util.Dom - Part.2 0

2019-11-21 01:47:52
字體:
來源:轉載
供稿:網友
batch: function(el, method, o, override) {
    // 讓 el 始終為 HTMLElement
    el = (el && (el.tagName || el.item)) ? el : Y.Dom.get(el); 

    if (!el || !method) {
        return false;
    }

    //  確定返回的對象
    var scope = (override) ? o : window;

    // 看起來是個 HTMLElement 或者不是 Array
    if (el.tagName || el.length === undefined) {
        return method.call(scope, el, o);
    } 

    var collection = []; 
    for (var i = 0, len = el.length; i < len; ++i) {
        collection[collection.length] = method.call(scope, el[i], o);
    }

    return collection;
},小馬補充

batch 是 YUI Dom 庫的核心之一。它最大的意義在于,它讓 Dom 庫的其他大多方法
的第一個參數可以是一個 id / 元素對象 或 一組 id/元素對象,減少了循環的使用。在這里可以找到 call 與 apply 的用法。在了解了 batch 以后,下來看 YUI.util.Dom 是怎么使用這一方法的,一口氣看兩個函數

getStyle: function(el, property) {
    // toCamel 函數后面介紹
    property = toCamel(property);

    // 獲取節點的樣式
    var f = function(element) {
        return getStyle(element, property);
    };

    return Y.Dom.batch(el, f, Y.Dom, true);
},setStyle: function(el, property, val) {
    property = toCamel(property);

    // 設置節點的樣式
    var f = function(element) {
        setStyle(element, property, val);        
    };

    Y.Dom.batch(el, f, Y.Dom, true);
},有關這兩個函數的具體用法,可以看下相關的文檔。其實從參數上就很容易理解怎么使用??瓷厦娴膬蓚€函數有利于理解 YAHOO.util.Dom.batch 的調用方式。

接下來,粗略看下 getXY

getXY: function(el) {
    var f = function(el) {
        // 確定元素是否“肉眼可見”
        if ( (el.parentNode === null || el.offsetParent === null ||
                this.getStyle(el, 'display') == 'none') && 
                            el != el.ownerDocument.body) {
            return false;
        }

        return getXY(el);
    };

    return Y.Dom.batch(el, f, Y.Dom, true);
},getX 與 getY 方法也是調用此函數,只是獲取返回值的數組元素不一樣。由于瀏覽器的兼容問題,提供給用戶的 YAHOO.util.Dom.getXY 也僅僅是判斷變量以后,再扔給最為復雜的內部 getXY 函數。

OK,留下太多的“懸念”了,下一期著重將它們解決。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嵊州市| 米林县| 那曲县| 金华市| 福安市| 黑河市| 东乌珠穆沁旗| 齐齐哈尔市| 南溪县| 泗水县| 临高县| 南通市| 珠海市| 白水县| 博野县| 新蔡县| 北川| 邹城市| 平泉县| 松潘县| 阿拉善盟| 漳平市| 通榆县| 泰兴市| 南和县| 湘西| 肥乡县| 新竹市| 读书| 依兰县| 堆龙德庆县| 报价| 漳平市| 湘阴县| 台湾省| 张北县| 山丹县| 临潭县| 新和县| 行唐县| 务川|