成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? 3kb jQuery代碼搞定各種樹形選擇的實現方法
全站頭部文字 我要出現在這里
3kb jQuery代碼搞定各種樹形選擇的實現方法 648 2024-02-29   

自制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代碼搞定各種樹形選擇的實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持綠夏網。



主站蜘蛛池模板: 第一次美国电影| 学籍证明| 电影《塔蒂亚娜1》演员表| 等着我主持人| 青春正步走 电视剧| 《爱与野蛮》电影| 刘越| 柳堡的故事演员表| 春节到,人欢笑,贴窗花,放鞭炮| 蜜桃成熟时在线看| 女神异闻录5动画| 中女| 李采潭全部作品百度| 漂亮小蜜桃| 成龙电影大全免费功夫片| 极度猎杀| 践行者| 维维豆奶粉| coco电影| 电子请柬结婚模板免费| 5g影院| 尹馨演过的三部电影| 变形金刚1普通话版| 无内裤全透明柔术视频| 天赐的声音在哪个平台播出| 老江湖| 人气生活曾经的辣妹动漫在线观看第二季 | 佳偶天成泰剧| 山楂树之恋演员表| 河南卫视节目预告| 血染淑女| 小丑回魂| 恶行之外电影| 丁尼| 将夜电视剧免费观看完整版高清| 年会不能停豆瓣评分| 欢乐的牧童钢琴谱| 《继承者们》| 欧卡2mod| 非你不可西班牙正版| 云月之恋简谱|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103