<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    雪湖小札@blogjava

    心情與技術文檔同行 http://hi.baidu.com/jingleq

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      24 Posts :: 2 Stories :: 4 Comments :: 0 Trackbacks

      在前面兩篇文章中,分別敘述了通過html舊標簽來做數據的綁定工作的好處與實現,通過整理,把綁定方法的代碼包裝成Jquery的plug型式。
      下載地址:/Files/csnowfox/jquery.jq.databinding.rar

    文件jquery.jq.databinding.js所有源碼為:

    /*
     * jQuery databinding plugin
     * Version 1.0  (06/14/2007)
     * @requires jQuery v1.1.1
     *
     * Copyright (c) 2007 JingleQ
     * Dual licensed under the MIT and GPL licenses:
     * http://www.opensource.org/licenses/mit-license.php
     * http://www.gnu.org/licenses/gpl.html
     
    */


    /**
     * bind the datas to the dom node talbe which like 
     * <table border="0" cellspacing="5" cellpadding="5" id="ta">
     * <tbody>
     *     <!-- 定制menu是為了使標題和下面的列表可以有不一樣的樣式布局 -->
     *     <tr id="menu">
     *         <td>用戶名</td>
     *         <td>密碼</td>
     *     </tr>
     *     <!-- 用于數據綁定 -->
     *     <tr id="def">
     *         <td bindingData="name" bindingPattern="[function] changeName({0})"></td>
     *         <td bindingData="password"></td>
     *     </tr>
     *     <!-- 下面是其它的布局輔助綁定數據后依然位于表格底部 -->
     *     <tr>
     *         <td colspan="2">&nbsp;--- 分頁 ---</td>
     *     </tr>
     * </tbody>
     * </table>
     * 
     * 
     * itemCallBackFunction is a callback function
     * using like this
     * 
     * $("#ta").bindingItemsData(dataMap,function(l,it){                    
     *     $(it).hover(function(){
     *         $(it).addClass("blue");
     *     },function(){
     *         $(it).removeClass("blue");
     *     })
     * });
     *
     * @example $("#ta").bindingItemsData(dataMap);
     * @example with callback function $("#ta").bindingItemsData(dataMap,function(l,it) {});
     * @name bindingItemsData
     * @type jQuery
     
    */

    jQuery.fn.bindingItemsData 
    = function (datas, itemCallBackFunction) {
        
    var self = this;    
        
    this.find("#def").each(function (i,n) {
            
    for (index in datas) {    
                
    var newTr = $(n).clone();
                
    // --- 標記列表 ---
                newTr.attr("item","true");
                newTr.find(
    "td").each(function(k,o){
                    
    if (o.bindingPattern != undefined || o.bindingPattern == ""{
                        
    try {
                            o.bindingPattern 
    = o.bindingPattern.replace("[function]","");
                            o.innerHTML 
    = eval(o.bindingPattern.replace("\{0\}","'" + datas[index][o.bindingData] + "'"));
                        }
     catch (e) {
                            alert(e);
                        }

                    }
     else {
                        o.innerHTML 
    = datas[index][o.bindingData];
                    }

                }
    )
                self.find(
    "#def").after(newTr);
            }

        }
    )
        
        
    // --- 通過回調添加列表樣式 ---
        if (itemCallBackFunction != undefined) {
            $(
    "#ta").find("tr[@item]").each(function(l,it) {
                    itemCallBackFunction(l,it)
                }

            );
        }

        
    return ta;
    }


    /**
     * bind the data to the dom node which like 
     * <span id="dt" 
     *             bindingData="name" 
     *             bindingPattern="[function] changeName({0})">
     * </span>
     *
     * @example $("span").bindingSpanData(dataMap);
     * @name bindingSpanData
     * @type jQuery
     
    */

    jQuery.fn.bindingSpanData 
    = function(data){
        
    return this.each(function (i,n) {
            
    if (n.bindingPattern != undefined || n.bindingPattern == ""{
                
    try {
                    n.bindingPattern 
    = n.bindingPattern.replace("[function]","");
                    n.innerHTML 
    = eval(n.bindingPattern.replace("\{0\}","'" + data[n.bindingData] + "'"));
                }
     catch (e) {
                    alert(e);
                }

            }
     else {
                n.innerHTML 
    = data[n.bindingData];
            }

        }
    )
    }
    posted on 2007-06-15 14:27 csnowfox 閱讀(675) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 免费在线观看h片| 亚洲一区二区三区免费在线观看| 精品免费国产一区二区| 亚洲videos| 成年男女免费视频网站| 亚洲中文无码mv| 波多野结衣久久高清免费 | 亚洲一区二区三区久久| 2021在线永久免费视频| 亚洲国产精品乱码在线观看97| 亚洲高清视频免费| 久久久久se色偷偷亚洲精品av | 亚洲AV无码成人精品区天堂| 国内精品久久久久影院免费| 亚洲最大的成网4438| 男女免费观看在线爽爽爽视频| 亚洲影院天堂中文av色| 国产高清视频在线免费观看| 西西人体大胆免费视频| 亚洲色欲一区二区三区在线观看| 免费人成毛片动漫在线播放| 亚洲国产成人精品电影| 国产资源免费观看| 中文毛片无遮挡高清免费| 亚洲精品综合久久中文字幕| 成人毛片手机版免费看| 一边摸一边桶一边脱免费视频| 亚洲av无码精品网站| 在线观看免费人成视频| 农村寡妇一级毛片免费看视频| 亚洲国产精品无码久久久蜜芽| 国产啪精品视频网免费| 免费一级特黄特色大片 | 亚洲成人在线电影| 岛国av无码免费无禁网站| 免费大片av手机看片| 亚洲国产成人一区二区三区 | 亚洲国产成人爱av在线播放| 免费在线中文日本| 亚洲AV无码男人的天堂| 亚洲AV人人澡人人爽人人夜夜|