Bootstrap模块dropdown完结下拉框响应分分快三计划

作者:分分快三计划

 浏览器开发者模式发现,使用select2插件后,你看到的下拉框是span,真正的下拉框select是隐藏掉了。

您可能感兴趣的文章:

  • BootStrap中关于Select下拉框选择触发事件及扩展
  • Bootstrap select多选下拉框实现代码
  • Bootstrap框架下下拉框select搜索功能
  • bootstrap datetimepicker实现秒钟选择下拉框
  • bootstrap suggest下拉框使用详解
  • Bootstrap select实现下拉框多选效果
  • 基于BootStrap multiselect.js实现的下拉框联动效果
  • 基于bootstrap实现多个下拉框同时搜索功能
  • Bootstrap组合上、下拉框简单实现代码
  • 基于Bootstrap下拉框插件bootstrap-select使用方法详解

var _this = this;
var _index, _tag, _value;
//初始化
this.init = function () {
_tag = _this.tag;
_index = _this.index;
//设置对象
_this.setDropdown(_this.data_default, _this.data_list);
//赋值绑定事件
if (_tag.find('span font').length > 0) _value = _tag.find('span font').attr('_id');
if (_tag == undefined) { return false; }
_this.showEvent();
_this.selectedIndex(_index);
return true;
}
//设置下拉列表
this.setDropdown = function (default_data, list) {
var css = _tag.attr('class');
if (default_data == undefined) {
default_data = { id: 'null', name: '' };
}
var _html = '';
if (_tag.find('p').length > 0 && _tag.find('span').length > 0) {
$.each(list, function (i, value) {
_html = '<a _id="' value.id '">' value.name '</a>';
});
_tag.find('span font').replaceWith('<font _id="' default_data.id

  $("#selPrinvice").next().css("display", "none"); //下拉框的后面一个元素隐藏

以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。

  • '">' default_data.name '</font>');
    _tag.find('p').html(_html);
    } else {
    _html = '<div class="dropdown ' css '">';
    _html = '<span><font _id="' default_data.id '">' default_data.name '</font><a></a></span>';
    _html = '<p>';
    if (list) {
    $.each(list, function (i, value) {
    _html = '<a _id="' value.id '">' value.name '</a>';
    });
    }
    _html = '</p>';
    _html = '</div>';
    var parent = _tag.parent();
    _tag.replaceWith(_html);
    _tag = parent.find('.dropdown' (css.length > 0 ? '.' css.replace(' ', '.') : ''));
    }
    }
    //下拉事件
    this.showEvent = function () {
    _tag.find('span').unbind('click').click(function () {
    var p = $(this).parent().find('p');
    if (p.css('display') == 'block') {
    p.css('display', 'none');
    $(this).removeClass('active');
    } else if (p.html().length > 0) {
    p.css('display', 'block');
    $(this).addClass('active');
    }
    });
    }
    //选中事件
    this.selectedIndex = function (index) {
    _tag.find('p a').unbind('click').click(function () {
    var parent = $(this).parent().parent();
    //给下拉框赋值
    if ($(this).text().length > 0) {
    var font = parent.find('font');
    font.text($(this).text());
    font.attr("_id", $(this).attr('_id'));
    _this.selectedIndexExpand(parent, $(this).index());
    parent.find('span').removeClass('active');
    }
    parent.find('p').css('display', 'none');
    });
    if (_tag.find('p a').length <= _index) _index = 0;
    if (_value && _value != '') {
    _index = _tag.find('p a[_id="' _value '"]').index();
    }
    _tag.find('p a:eq(' _index ')').click();
    }
    //选中事件扩展
    this.selectedIndexExpand = function (tag, index) { }
    }

所以要隐藏下拉框应该设置最外面的span隐藏。比如我的设置如下:

10、实现向上弹出子菜单,用bottom:100%(弹出子菜单bottom的定位)实现
11、应用示例

<b class="select_type"></b>

 同理:设置宽度,也应该设置span。不过一开始在select写style="width:300px"时,在渲染成select2插件过程中,span的width取自于当前select的宽度。

1、利用dropdown类作为定位点,然后让子级的列表dropdown-menu绝对定位实现,还需要加一个单击点作为设置data-toggle=”dropdown”才能做关联。
2、 需要js插件的支持

复制代码 代码如下:

<select id="selPrinvice" class="Select2 select2-hidden-accessible" style="width:120px;" data-select2-id="selPrinvice" tabindex="-1" aria-hidden="true"><option value="" data-select2-id="4">请选择</option></select>

请选择<b role="presentation"></b>

三、源码分析:
1、caret:实现向下的三角形,利用边框实现的
    1.1、边框颜色默认是字体颜色
    1.2、三角形的实现:边框要有宽度,然后相邻两边需有宽度,但颜色透明;最后还需要元素为行内块元素,才能使其高、宽为0。
    1.3、代码如下

复制代码 代码如下:

$(document)
.on('click.bs.dropdown.data-api', clearMenus)
.on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
.on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
.on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
.on('keydown.bs.dropdown.data-api','.dropdown-menu',Dropdown.prototype.keydown)

1、自定义类:

2、在document上绑定了click事件的监听,监听类型为data-toggle=”dropdown”。
3、Js插件写的Plugin函数,和类的构造函数是用于js方式调用插件;
4、而data-*模式调用插件,用到是向document注入事件实现的,代码如下:

1.创建构造函数,初始化赋值控件值。

一、源码分析:
Dropdowns.scss:
下拉框模块
Javascripts/bootstrap/dropdown.js:实现下拉框响应

复制代码 代码如下:

var Dropdown = function (element) {
 $(element).on('click.bs.dropdown', this.toggle)
}

.dropdown span a{float:left;background:url(/img/Icon_BG.png);}
/*下拉框
.dropdown span a{background-position: -213px -75px;}
.dropdown{float:left;width:105px;}
.dropdown span{border:solid 1px #ccc;width:95%;height:28px;background:url(/img/tbline_bg.png);border-radius:8px;overflow:hidden;}
.dropdown span{float:left;padding-left:10px;line-height:28px; cursor:pointer;}
.dropdown span.active{border-radius:8px 8px 0px 0px;}
.dropdown span font{width:auto;margin-right: 0px;float:left;}
.dropdown span a{float:right;width:20px;height:20px;margin:4px 0;}
.dropdown p{border:solid 1px #ccc;border-top:0px;width:103px;display:none;position:absolute;margin-top:28px;background-color:#fff;z-index:3;max-height:280px;overflow-y: auto; overflow-x: hidden;}
.dropdown p a{float:left;line-height:28px;height:28px;padding-left:10px;color:#666;font-size:14px;cursor:default;text-align:left;width:100%;overflow:hidden;}
.dropdown p a:hover{background:url(/img/tbline_bg.png);color:#666;}

如果大家还想深入学习,可以点击这里进行学习,再为大家附两个精彩的专题:Bootstrap学习教程 Bootstrap实战教程

代码如下:

复制代码 代码如下:

分解自定义下拉框:

原理:

3.点击下拉框控件,展示下拉列表

<ul class="nav nav-pills navbar-nav">
 <li><a>Index</a></li>
 <li><a>产吕</a></li>
 <li > <a data-toggle="dropdown" href="#name" >实用工具</a></li>
</ul>
<div id="name" >
 <ul class="dropdown-menu" >
 <li><a>关于我们</a></li>
 </ul>
</div>

2、示例代码:

6、clearMenu:只会清除data-toggle=”dropdown”的元素
7、dropdown-backdrop:用于移动没有单击事件的处理
8、keydown:当dropdown按钮获取焦点的时候,按下键可以展开,按上键收缩的功能
9、data-target和herf=”#id”:是为了实现单击,展开指定的下拉列表,默认是展开与按钮后面兄弟节点:

复制代码 代码如下:

<span style="border-left: 4px solid; border-top: 4px solid transparent; border-bottom: 4px solid transparent; height: 0px; width: 0px; line-height: normal; display: inline-block; "></span>

4.点击触发下拉框控件,收起下拉列表。

本文介绍了Bootstrap下拉框模块dropdown的使用方法,供大家参考,具体内容如下

2.绑定控件呈现在前台。

二、功能及原理:
下拉选项卡,默认不能实现显示选中项的功能

您可能感兴趣的文章:

  • jquery multiSelect 多选下拉框
  • 基于jquery的网页SELECT下拉框美化代码
  • jquery获得下拉框值的代码
  • 基于jquery的无限级联下拉框js插件
  • 利用jQuery实现可输入搜索文字的下拉框
  • jquery及原生js获取select下拉框选中的值示例
  • jquery动态加载select下拉框示例代码
  • JQuery异步加载无限下拉框级联功能实现示例
  • JQuery打造省市下拉框联动效果
  • jQuery操作select下拉框的text值和value值的方法
  • 基于jquery实现的可编辑下拉框实现代码
  • jQuery制作简洁的多级联动Select下拉框
  • jQuery扁平化风格下拉框美化插件FancySelect使用指南
<div id="dropdown" class="dropdown">
<a id="dropdown-btn" data-target="#dropdown" >number</a>
<ul class="dropdown-menu" >
 <li><a>3343</a></li>
<li><a>555</a></li>
</ul>
</div>

继续发一篇关于web前端自定义控件——ComboBox(下拉框),以往我在使用下拉框控件老是为了样式丑陋而烦恼,现在分享这个控件,希望有用的同仁们可以收藏,或进行二次修改,达到你想要的效果。

代码直接调用了Dropdown定义的方法,这里经妙的设计在于插件的框架,data-*模式的调用与Js插件模式的调用,而这两种调用模式却利用了同一份代码。
5、如果用Js插件调用,基础方法都要自己调用才行,在创建实例时只会绑定toggle事件。

3、示例图:
分分快三计划 1

5.点击下拉项触发事件。

Html代码:

//下拉框
var ComboBox = function () {
this.tag;
this.data_default;
this.data_list;
this.index = 0;

//
var array_state = [{ id: -1, name: '状态' }, { id: 1, name: '未成功' }, { id: 2, name: '成功' }, { id: 3, name: '失败'}];
//状态下拉控件
var select_type = new ComboBox();
select_type.tag = $('.select_type');
select_type.data_default = array_state[0];
select_type.data_list = array_state;
select_type.selectedIndexExpand = function (tag, index) {
//fun_Pager();
}
select_type.init();

css样式:

Js代码:

本文由分分快三计划发布,转载请注明来源

关键词: 分分快三计划