<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 免费99精品国产自在现线| 日韩精品内射视频免费观看| 成年在线观看免费人视频草莓| 精品亚洲aⅴ在线观看| 国产一区二区三区免费观看在线| 国产啪亚洲国产精品无码| 国产成人精品免费视频大全| 国产中文在线亚洲精品官网| 精品一区二区三区免费视频| 免费a级毛片大学生免费观看| 五月天婷婷精品免费视频| 国产偷窥女洗浴在线观看亚洲| h视频在线观看免费| 久久精品国产亚洲综合色| 四虎国产成人永久精品免费| 亚洲视频一区在线| 国产精品成人免费一区二区| 国产亚洲欧美日韩亚洲中文色| jjzz亚洲亚洲女人| 国产午夜无码片免费| 亚洲视频小说图片| 在线播放免费播放av片| 羞羞漫画登录页面免费| 亚洲乳大丰满中文字幕| xxxxx免费视频| 久久人午夜亚洲精品无码区| 亚洲日本韩国在线| 91热久久免费精品99| 亚洲国产成人久久精品大牛影视| 亚洲AⅤ无码一区二区三区在线| 免费无码一区二区三区蜜桃| 亚洲五月综合网色九月色| 国产成人免费ā片在线观看| 国产成人无码区免费网站| 亚洲AV无码乱码在线观看代蜜桃| 又粗又黄又猛又爽大片免费| 久久久久久久久久国产精品免费| 亚洲色www永久网站| 国产V亚洲V天堂无码久久久| 成人AV免费网址在线观看| h在线看免费视频网站男男|