select在IE6下显示时存在问题,写了个jquery插件,隐藏原select,用js重新构建UI,对新UI的操作会映射到原select,支持默认选中,自适应宽和change事件
效果图
example.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>example</title>
<script type="text/javascript" src="js/jquery.js"></script>
<link rel="stylesheet" type="text/css" href="js/selectBox/selectBox.css"/>
<script type="text/javascript" src="js/selectBox/selectBox.js"></script>
<script>
$().ready(function(){
$("#room").change(function(){alert("changed");});
$("select").selectBox();
});
</script>
<style>
body{font-size:14px}
</style>
</head>
<body>
<select name="room" id="room">
<option value="">请选择</option>
<option value="0">0</option>
<option value="1">1</option>
<option value="2" selected>2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
<label>A</label>
<select name="hall">
<option value="">请选择</option>
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<label>B</label>
<select name="toilet">
<option value="">请选择</option>
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">长字符串长字符串</option>
</select>
<label>C</label>
</body>
</html>
selectBox.js
;(function($) {
$.fn.extend({
"selectBox":function(value){
//=
var $this=this;
var jQuerySelectBoxCount=1;
var hideDragDown=function(){
$(".jQuerySelectBox .options").css("display","none")
};
$this.each(function(){
jQuerySelectBoxCount++;
var d=new Date();
var id="jQuerySelectBox"+d.getSeconds()+"_"+d.getMilliseconds()+"_"+jQuerySelectBoxCount;
var jQuerySelectBox=$("#"+id);
var original=$(this);
original.css("display","none");
var e="<div class='jQuerySelectBox' id='"+id+"'></div>";
$(e).insertAfter(original);
var current=$("<div class='current' index='0'> </div>").appendTo("#"+id);
var opts=$("<div class='options'></div>").appendTo("#"+id);
var down=$("<div class='down'></div>").appendTo("#"+id);
var dragDown=function(){//drag down the options
if($("#"+id+" .options").css("display")!="block"){
hideDragDown();
$("#"+id+" .options").css({
display : "block",
top : $("#"+id).offset().top+$("#"+id).height(),
left : $("#"+id).offset().left,
width : $("#"+id).width()
});
$("#"+id+" .options .option[index='"+current.attr("index")+"']").addClass("selected");
}else{
hideDragDown();
}
};
$(down).click(dragDown);
$(current).click(dragDown);
var options=original.children("option");
var o;
for(var i=0;i<options.length;i++){
o=original.find("option[index='"+i+"']");
var option="<div class='option' val='"+o.attr("value")+"' index='"+i+"'>";
option+=o.text();
option+="</div>";
var opt=$(option).appendTo(opts);
if(o.attr('selected')==true){//selected option
opt.addClass("selected");
$(current).html(o.text());
$(current).attr("index",i);
}
opt.click(function(){
current.html($(this).text());
if(current.attr("index")!=$(this).attr("index")){//if change
current.attr("index",$(this).attr("index"));
$(original).change();//invoke orignal select onchange
}
original.find("option[index='"+$(this).attr("index")+"']").attr("selected",true);
$(this).addClass("selected");
hideDragDown();
});
opt.mouseover(function(){
$(".jQuerySelectBox .options .option").removeClass("selected");
$(this).addClass("selected");
});
opt.mouseout(function(){
$(this).removeClass("selected");
});
}
$(current).width(opts.width());
$("#"+id).width(opts.width()+down.width()+2);
});
//=
}
});
})(jQuery);
- 大小: 8.8 KB
分享到:
相关推荐
标题中的"select2(jquery)插件下载"指的是这个插件的获取途径,通常通过下载压缩包文件来获取并应用于项目中。 **核心特性** 1. **搜索功能**: 描述中的"根据输入内容自动过滤select选项"是Select2的核心功能之一...
在这个案例中,我们使用的是jQuery的select插件,具体来说是"jquery.searchableSelect",它为标准的HTML `<select>` 元素添加了搜索功能。 要使用此插件,您需要引入以下文件: 1. `jquery-1.11.1.min.js`:这是...
jQuery超级Select插件v4.0版本是一个强大且灵活的工具,它为Web开发者提供了丰富的功能和定制选项,帮助提升Select元素的用户体验。通过深入理解和合理运用,开发者可以构建出更加便捷、高效的表单交互。无论是在...
“jQuery Select插件”是一个专门为jQuery设计的组件,它的主要功能是模拟一个具有统一界面风格的下拉选择框。通过使用这个插件,开发者可以轻松地将原有的HTML `<select>` 元素转换为更美观、更符合现代网页设计...
`jQuery Select2`是一款强大的、高度可定制的下拉选择框插件,它在原生HTML `<select>` 元素的基础上提供了丰富的功能和优秀的用户体验。这款组件广泛应用于网页开发中,使得传统的单选或多选下拉菜单变得更加美观且...
在“jquery select美化插件”这个主题中,我们主要关注的是如何利用jQuery扩展原生的`<select>`元素,使其外观和交互更加友好。 描述中提到的“附带jquery1.5”,意味着这个插件依赖于jQuery 1.5版本。尽管这个版本...
"移动设备 Select jQuery 插件"就是为了解决这个问题而设计的,它提供了高度可定制且具有良好触控体验的选择器组件,适用于手机端应用。 此插件基于jQuery框架,意味着它可以轻松地与现有的jQuery代码集成,提供了...
这个标题暗示了我们正在讨论一个基于jQuery的插件,它的功能是为HTML的select元素添加多样的日期选择选项。通常,这种插件会扩展input类型的元素,使得用户可以通过下拉菜单或日历视图快速选取日期,而不必手动输入...
Chosen插件可以通过简单的jQuery选择器和`.chosen()`方法来应用到select元素上: ```javascript $("#mySelect").chosen(); ``` 2. 多选模式 对于`<select multiple>`,Chosen会自动开启多选模式,用户可以按住...
jQuery下拉列表select美化插件jQselectable jQuery下拉列表select美化插件jQselectable jQuery下拉列表select美化插件jQselectable jQuery下拉列表select美化插件jQselectable
`jquery.easydropdown.min.js`是一个轻量级的jQuery插件,它的主要功能是将传统的Select元素转换为具有自定义样式的下拉菜单。这个插件通过JavaScript和CSS实现了高度可定制的外观和行为,同时保持了原生Select的...
总之,jQuery插件Select2是前端开发中不可或缺的工具之一,它极大地提高了用户选择交互的质量,使得原本单调的`<select>`元素焕发新生。通过学习和掌握Select2的使用,开发者可以为用户提供更加高效、美观的界面。
总的来说,jQuery的Combo Select插件结合HTML5技术,为网页开发提供了强大的下拉查询筛选功能。它不仅提高了用户体验,也为开发者提供了灵活性和便利性,是构建交互式Web应用的理想工具。通过深入理解并实践这些知识...
**jQuery下拉查询筛选插件Combo Select** 在Web开发中,为了提高用户体验,经常会使用到下拉选择框,特别是当选项列表很长时。jQuery库提供了一种强大的方式来增强原生HTML元素的功能,其中就包括了`Combo Select`...
1. 在页面中引入jQuery库和jQuery-ComboSelect插件的JavaScript及CSS文件。 2. 初始化插件,指定要增强的下拉选择框元素,并设置相应的配置项,如是否开启多选、是否显示搜索框等。 3. 可选地,通过监听插件提供的...
此为jquery.editable-select插件的使用案例,这是一款非常好用的插件,好用之处:既可下拉框选择也可手动输入,而且手动输入还能对下拉框选项进行过滤,而且还可实现一些相关事件,具体请查看官方文档。
这个插件的实现原理主要是通过jQuery对原生`<select>`元素进行包装,使用HTML和CSS构建一个新的可视元素来模拟选择器的外观,再通过JavaScript处理用户交互,如点击、滑动等,实时同步`<select>`元素的状态,确保...
对于标题提到的"jquery带有图片的select插件",这是一种创新的方式,用于增强传统HTML `<select>` 元素的功能,使其不仅能够展示文本选项,还能展示与选项相关的图片。这样的插件可以提高用户界面的视觉吸引力和交互...
总结来说,"jQuery Select下拉框分类菜单多选插件"是一个强大的工具,它通过jQuery的灵活性和功能,解决了传统HTML选择器在处理复杂选择需求时的局限性。通过分类、多选和搜索等功能,它提升了用户在网页上的操作...