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

首頁 > 編程 > JavaScript > 正文

3kb jQuery代碼搞定各種樹形選擇的實現方法

2019-11-20 09:44:36
字體:
來源:轉載
供稿:網友

自制Jquery樹形選擇插件.

對付各種樹形選擇(省市,分類..)90行Jquery代碼搞定,少說廢話直接上插件代碼。稍后介紹使用說明。是之前寫的一個插件的精簡版。

1.Jquery插件代碼

(function (j) {  j.fn.attrs = function (option) {    var root = this, data = [];    //默認參數    var def = { url: '/ajax/GetSort/', str: root.attr("str") || '0', handel: function (v) {      return "<option value=" + v.id + ">" + v.type + "</option>"    }, path: root.attr("val") || 0, sChar: ',', change: function (v) { }    };    //參數合并    def = j.extend({}, def, option);    //是否初始化    ispath() ? init() : create(def.str);    //請求分類并選中    function create(id, o, v) {      if (!id || parseInt(id) == -1)        return o.nextAll().remove();      //創建select      var select = j("<select></select>").hide();      _b(select);      //添加到容器內      if (o) o.nextAll().remove();      root.append(select);      //發起Ajax請求      j.ajax({        type: "GET",        url: def.url,        data: { id: id },        dataType: "json",        cache: true,        success: function (json) {          datainit(select, json, v);        }      })    }    function datainit(select, data, v) {      _c(select, data).val(v || -1);      if (select.children("option").length <= 1) {        select.remove();        return;      }      else        select.removeAttr("style");    }    //判斷是否符合格式    function ispath() {      return def.path && /^(/d{1,},)*/d{1,}$/.test(def.path) && def.path != '0,0,0';    }    //創建值    function _v() {      var v = new Array(), vtext = new Array();      v.push(0);      root.children("select").each(function () {        if (j(this).val() > 0) {          v.push(j(this).val());          vtext.push(j(this).children("option[selected]").text())        }      })      root.attr("val", v.join(','));      root.attr("vtext", vtext.join(">"));      def.change(v);    }    //初始化    function init() {      if (ispath()) {        var list = def.path.split(def.sChar);        for (var i in list) {          create(list[i], null, list[++i]);        }        return;      }      alert("Error:分類出錯!")    }    //綁定事件    function _b(select) {      select.bind("change", function () {        create(j(this).val(), j(this));        _v();      })    }    //創建下拉框    function _c(select, data) {      select.append(j("<option value='-1'>==請選擇==</option>"));      for (var i = 0; i < data.length; i++) {        select.append(j(def.handel(data[i])));      }      return select;    }  }})($)

2.對付省市選擇

3.對付各種讓你蛋疼的無限級選擇

4.如何使用

<div id="attr"></div><script type="text/javascript">(function($){$("#attr").attr( { url: '/ajax/GetSort/',//ajax 獲取的URL 服務器返回的是Json 數據 str: root.attr("str") || '0',//獲取初始化的分類path.例如:23,45,90。在編輯的情況下能正確還原 handel: function (v) {//數據處理的回調函數,表明如何對后臺數據進行解析。 如[{id:32,type:"分類"}]   return "<option value=" + v.id + ">" + v.type + "</option>"  }, path: root.attr("val") || 0, sChar: ',',//path 拆分的字符如果,path 為23|45|90 則 ‘|' change: function (v) { }//選擇框修改處理事件  };);})(jQuery)</script>

以上這篇3kb jQuery代碼搞定各種樹形選擇的實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西藏| 获嘉县| 嘉善县| 新田县| 锡林浩特市| 茌平县| 绍兴县| 宜黄县| 柳林县| 惠来县| 宁陕县| 常熟市| 凤翔县| 图木舒克市| 漳州市| 宿迁市| 海原县| 丹巴县| 翁源县| 武城县| 德惠市| 东乌珠穆沁旗| 南木林县| 白城市| 巢湖市| 阿坝| 新建县| 永福县| 河源市| 册亨县| 莒南县| 沽源县| 东辽县| 司法| 新晃| 汉源县| 榆中县| 舒城县| 蓬溪县| 屯昌县| 贡嘎县|