jquery自定義下拉列表示例
自從上次做了JQ自定義分頁(yè)插件和表格插件后,就沒(méi)在自定義過(guò)插件了,這一個(gè)月都在用linq和ef,基本前端都沒(méi)怎么去碰了,今天有個(gè)同事說(shuō)有個(gè)項(xiàng)目需要在下拉框里面帶有復(fù)選框,本來(lái)想網(wǎng)上找下插件的,一想,其實(shí)這功能也并不難,于是就自己做了一個(gè),也趁機(jī)再次熟悉下JQ自定義插件吧,好了,先附上效果圖先:
看上去沒(méi)怎么難吧,其實(shí)就是強(qiáng)化JQ,免得太久沒(méi)用,生疏了。好了。附上我的代碼:
(function($){
var option={
isEdit:false, //是否可以編輯:默認(rèn)是否
Listheight:200, //下拉框高度
ListWidth:0, //下拉框長(zhǎng)度
//數(shù)據(jù)源
data:[
{"value":1,"text":"選擇1"},
{"value":2,"text":"選擇2"},
{"value":3,"text":"選擇3"},
{"value":4,"text":"選擇4"}
]
}
//開(kāi)始創(chuàng)建下拉框
function Start(obj)
{
if(!option.isEdit)
{
obj.attr({"readonly":"readonly"});
}
var myList=$("<div></div>");
var ul=$("<ul></ul>");
ul.css({"list-style":"none","margin":"0px","padding":"2px"});
myList.css({"border":"1px solid #D9E5F3","position":"absolute","overflow-y":"scroll","background-color":"#fff","font-size":"12px"});
if(option.Listheight<=0)
{
option.Listheight=200;
}
myList.height(option.Listheight);
if(option.ListWidth<=0)
{
option.ListWidth=obj.width()
}
myList.width(option.ListWidth);
//默認(rèn)位置是在創(chuàng)建元素的下方
myList.offset({"top":obj.offset().top+obj.outerHeight(),"left":obj.offset().left});
var data=option.data;
if(data.length>0)
{
for(i=0;i<data.length;i++)
{
var li=$("<li/>");
var ListSon=$("<input type='checkbox' />");
ListSon.change(function(){
if(this.checked)
{
obj.val(obj.val()+$(this).val());
}
else
{
obj.val(obj.val().replace($(this).val(),""));
}
})
myList.mouseover(function(){
myList.show();
})
myList.mouseout(function(){
myList.hide();
})
var span=$("<span></span>");
span.text(data[i].text);
ListSon.val(data[i].value+";");
li.append(ListSon);
li.append(span);
ul.append(li);
}
}
myList.append(ul);
myList.appendTo("body");
myList.hide();
FoucsShow($(obj),myList);
}
// 當(dāng)獲取到焦點(diǎn)使出現(xiàn)該下拉框
function FoucsShow(obj,myList)
{
obj.focus(function(){myList.show()})
}
$.fn.createList=function(newoption)
{
$.extend(option,newoption);
Start($(this));
}
})(jQuery);
前臺(tái)調(diào)用:
$("#d2").createList({
//數(shù)據(jù)源
data:[
{"value":"C#","text":"C#"},
{"value":".NET","text":".NET"},
{"value":"Java","text":"Java"},
{"value":"JSP","text":"JSP"},
{"value":"C","text":"C"},
{"value":"C++","text":"C++"},
{"value":"javascript","text":"javascript"},
{"value":"ajax","text":"ajax"},
{"value":"json","text":"json"},
{"value":"xml","text":"xml"},
{"value":"sql server","text":"sql server"},
{"value":"xml","text":"Mysql"},
{"value":"oracle","text":"oracle"},
{"value":"JQuery","text":"JQuery"},
{"value":"Ext js","text":"Ext js"},
{"value":"CSS3","text":"CSS3"},
{"value":"HTML5","text":"HTML5"}
]
});
$("#d3").createList();
})
- jQuery實(shí)現(xiàn)多級(jí)聯(lián)動(dòng)下拉列表查詢(xún)框
- jQuery實(shí)現(xiàn)輸入框下拉列表樹(shù)插件特效代碼分享
- jQuery三級(jí)下拉列表導(dǎo)航菜單代碼分享
- jquery用ajax方式從后臺(tái)獲取json數(shù)據(jù)后如何將內(nèi)容填充到下拉列表
- jQuery插件datalist實(shí)現(xiàn)很好看的input下拉列表
- jQuery實(shí)現(xiàn)在下拉列表選擇時(shí)獲取json數(shù)據(jù)的方法
- jQuery實(shí)現(xiàn)自定義下拉列表
- JQuery 使用attr方法實(shí)現(xiàn)下拉列表選中
- JQuery實(shí)現(xiàn)鼠標(biāo)滑過(guò)顯示導(dǎo)航下拉列表
- Jquery多選下拉列表插件jquery multiselect功能介紹及使用
- jQuery結(jié)合PHP+MySQL實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)下拉列表[實(shí)例]
- 利用jquery操作select下拉列表框的代碼
- jQuery實(shí)現(xiàn)可移動(dòng)選項(xiàng)的左右下拉列表示例
相關(guān)文章
js 限制表單輸入長(zhǎng)度 漢字為兩個(gè)字符
該效果是繼 檢測(cè)表單輸入長(zhǎng)度 顯示剩余可輸入字?jǐn)?shù) 之后,在他的基礎(chǔ)上整合的小有差別的一個(gè)效果,希望方便朋友們使用。2011-07-07簽名框(Textarea)限制文字?jǐn)?shù)量并適時(shí)提示
僅用了一行代碼就實(shí)現(xiàn)了文本框的文字輸入數(shù)量限制,并適時(shí)給出提示,一般常見(jiàn)于發(fā)表評(píng)論、留言或簽名框等.2009-10-10js下用層來(lái)實(shí)現(xiàn)select的title提示屬性
用層來(lái)實(shí)現(xiàn)select的title 提示屬性2010-02-02更換select下拉菜單背景樣式的實(shí)現(xiàn)代碼
更換select下拉菜單背景樣式的實(shí)現(xiàn)代碼,需要的朋友可以參考下。2011-12-12js form action動(dòng)態(tài)修改方法
js修改form的action屬性的函數(shù)2008-11-11