一個簡單的實現(xiàn)下拉框多選的插件可移植性比較好
更新時間:2014年05月05日 09:43:33 作者:
一個簡單的實現(xiàn)下拉框多選的插件,可移植性也比較好,需要的朋友可以參考下
在使用上次寫的一個多先下拉框時,我發(fā)現(xiàn)了很多問題,經(jīng)過修改和完善后,現(xiàn)在已經(jīng)能夠很好地使用了,且可移植性也比較好,下面是源代碼。
js
(function(){
$.fn.extend({
checks_select: function(options){
jq_checks_select = null;
$(this).val("---請選擇---");
$(this).next().empty(); //先清空
$(this).unbind("click");
$(this).click(function(e){
jq_check = $(this);
//jq_check.attr("class", "");
if (jq_checks_select == null) {
jq_checks_select = jq_check.next();
jq_checks_select.addClass("checks_div_select");
//jq_checks_select = $("<div class='checks_div_select'></div>").insertAfter(jq_check);
$.each(options, function(i, n){
check_div=$("<div><input type='checkbox' value='" + n + "'>" + n + "</div>").appendTo(jq_checks_select);
check_box=check_div.children();
check_box.click(function(e){
//jq_check.attr("value",$(this).attr("value") );
temp="";
$(this).parents().find("input:checked").each(function(i){
if(i==0){
temp=$(this).val();
}else{
temp+=","+$(this).val();
}
});
//alert(temp);
jq_check.val(temp);
e.stopPropagation();
});
});
jq_checks_select.show();
}else{
jq_checks_select.toggle();
}
e.stopPropagation();
});
$(document).click(function () {
flag=$("#test_div");
if(flag.val()==""){
flag.val("---請選擇---");
}
jq_checks_select.hide();
});
//$(this).blur(function(){
//jq_checks_select.css("visibility","hidden");
//alert();
//});
}
})
})(jQuery);
html
<html>
<head>
<script type="text/javascript" src="js/jquery.js">
</script>
<script type="text/javascript" src="js/jquery_mutili.js">
</script>
<script language="javascript">
$(document).ready(function(){
var options = {
1: "第一個選擇項",
2: "第二個選擇項",
3: "第三個選擇項",
4: "第四個選擇項",
5: "第五個選擇項",
6: "第六個選擇項"
};
$("#test_div").checks_select(options);
});
</script>
<style>
.checks_div_select {
width: 150px;
background-color: #e9fbfb;
border: 1px solid #18cbcd;
font-family: 'Verdana', '宋體';
font-size: 12px;
position:absolute;
left:2px;
top:25px;
}
</style>
</head>
<body>
<div style="position:relative;">
<input type="text" id="test_div" readonly="readonly"/>
<div></div>
</div>
</body>
</html>
js
復(fù)制代碼 代碼如下:
(function(){
$.fn.extend({
checks_select: function(options){
jq_checks_select = null;
$(this).val("---請選擇---");
$(this).next().empty(); //先清空
$(this).unbind("click");
$(this).click(function(e){
jq_check = $(this);
//jq_check.attr("class", "");
if (jq_checks_select == null) {
jq_checks_select = jq_check.next();
jq_checks_select.addClass("checks_div_select");
//jq_checks_select = $("<div class='checks_div_select'></div>").insertAfter(jq_check);
$.each(options, function(i, n){
check_div=$("<div><input type='checkbox' value='" + n + "'>" + n + "</div>").appendTo(jq_checks_select);
check_box=check_div.children();
check_box.click(function(e){
//jq_check.attr("value",$(this).attr("value") );
temp="";
$(this).parents().find("input:checked").each(function(i){
if(i==0){
temp=$(this).val();
}else{
temp+=","+$(this).val();
}
});
//alert(temp);
jq_check.val(temp);
e.stopPropagation();
});
});
jq_checks_select.show();
}else{
jq_checks_select.toggle();
}
e.stopPropagation();
});
$(document).click(function () {
flag=$("#test_div");
if(flag.val()==""){
flag.val("---請選擇---");
}
jq_checks_select.hide();
});
//$(this).blur(function(){
//jq_checks_select.css("visibility","hidden");
//alert();
//});
}
})
})(jQuery);
html
復(fù)制代碼 代碼如下:
<html>
<head>
<script type="text/javascript" src="js/jquery.js">
</script>
<script type="text/javascript" src="js/jquery_mutili.js">
</script>
<script language="javascript">
$(document).ready(function(){
var options = {
1: "第一個選擇項",
2: "第二個選擇項",
3: "第三個選擇項",
4: "第四個選擇項",
5: "第五個選擇項",
6: "第六個選擇項"
};
$("#test_div").checks_select(options);
});
</script>
<style>
.checks_div_select {
width: 150px;
background-color: #e9fbfb;
border: 1px solid #18cbcd;
font-family: 'Verdana', '宋體';
font-size: 12px;
position:absolute;
left:2px;
top:25px;
}
</style>
</head>
<body>
<div style="position:relative;">
<input type="text" id="test_div" readonly="readonly"/>
<div></div>
</div>
</body>
</html>
相關(guān)文章
jQuery on()方法示例及jquery on()方法的優(yōu)點
使用jquery on()方法綁定事件是官方推薦的一種方法,接下來跟著小編來學(xué)習(xí)jquery on()方法,小伙伴快來一起學(xué)習(xí)吧2015-08-08
jQuery學(xué)習(xí)7 操作JavaScript對象和集合的函數(shù)
jQuery學(xué)習(xí)7:操作JavaScript對象和集合的函數(shù)2010-02-02
EasySlider 基于jQuery功能強大簡單易用的滑動門插件
Easy Slider 是一個滑動門插件,支持任何圖片或內(nèi)容,當(dāng)點擊時實現(xiàn)橫向或縱向滑動。它擁有一系列豐富的參數(shù)設(shè)置,可通過CSS來進行完全的控制。2010-06-06
jquery使用animate方法實現(xiàn)控制元素移動
這篇文章主要介紹了jquery使用animate方法實現(xiàn)控制元素移動,涉及jQuery中animate方法的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03
jQuery插件FusionWidgets實現(xiàn)的Bulb圖效果示例【附demo源碼下載】
這篇文章主要介紹了jQuery插件FusionWidgets實現(xiàn)的Bulb圖效果,結(jié)合完整實例形式分析了jQuery使用FusionWidgets插件結(jié)合swf文件載入xml數(shù)據(jù)實現(xiàn)Bulb圖效果的相關(guān)操作技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2017-03-03

