function selectControl(name,contorDiv){
this.contorDiv=contorDiv;
this.scName=name;
this.selectBoxName=name+'_selectBox' //select 弹出的div
this.valueBoxName=name+'_valueBox' //select
this.inputName=name+'_selectValue'
this.clickBoxName=name+'_clickBox'
this.signName=name+'_sign'
this.colNum=3;
this.colFontLength='10'; //10个汉字20个字符
this.clickCount; //当前选中项
this.jsonData=[
{name:'天津0',value:'天津0'},
{name:'天津1',value:'天津1'},
{name:'天津2',value:'天津2'},
{name:'天津3',value:'天津3'},
{name:'天津4',value:'天津4'},
{name:'天津5',value:'天津5'},
{name:'天津6',value:'天津6'},
{name:'天津7',value:'天津7'}]
var temp=this;
this.showDiv=function (){
$('#'+temp.selectBoxName).show();
}
this.cloDiv=function (){
$('#'+temp.selectBoxName).hide();
}
//初始化方法
this.init=function (){
$('#'+temp.contorDiv).append(temp.createStr())
$(document.body).bind('click',function (){
var eleId=event.srcElement.id;
if(eleId!=temp.selectBoxName && eleId!=temp.valueBoxName && eleId!=temp.inputName&& eleId!=temp.signName){
temp.cloDiv()
}
})
$('#'+temp.signName).bind('mouseover',function (){
$(this).css('background','url("droparrowover.gif") no-repeat right center')
window.event.cancelBubble = true;
})
$('#'+temp.signName).bind('mouseout',function (){
$(this).css('background','url("droparrow.gif") no-repeat right center')
window.event.cancelBubble = true;
})
temp.setData();
}
this.createStr=function (){
var createStr=''
createStr+="<div id='"+temp.clickBoxName+"' class='_clickBox' onclick='"+temp.scName+".showDiv()'>"
createStr+="<table cellpadding=\"0\" cellspacing=\"0\" style='background:#DDD url(selectBg.png) repeat-x left top;'>"
createStr+="<tr>"
createStr+="<td id='"+temp.valueBoxName+"' class='valueBox'><input type='text' id='"+temp.inputName+"'></td>"
createStr+="<td id='"+temp.signName+"' class='sign'> </td>"
createStr+="</tr></table></div>"
createStr+="<div id='"+temp.selectBoxName+"' style='display:block;position:absolute;z-index:10;border:1px solid;width:500;height:250;overflow-y:auto;overflow-x:hidden'></div>"
return createStr;
}
//设置数据
this.setData=function (){
var tabStr='<table width="100%" id="'+temp.scName+'_valueList" class="valueList" cellpadding="0" cellspacing="0">'
var romNum=parseFloat(temp.jsonData.length)/parseFloat(temp.colNum)
if(romNum!=parseInt(romNum)){
romNum=parseInt(romNum)+1;
}
for(var i=0;i<romNum;i++){
tabStr+='<tr id="'+temp.scName+'_s_tr_'+i+'"></tr>'
}
var count=0;
var trId,tdStr,name,value;
tabStr+='</table>'
$('#'+temp.selectBoxName).html(tabStr)
$(temp.jsonData).each(function (i){
trId=temp.scName+'_s_tr_'+count
name=temp.jsonData[i].name
value=temp.jsonData[i].value
if(temp.fontLen(name)>temp.colFontLength){
name=name.substr(0,temp.colFontLength)+'......'
}
tdStr='<td title='+temp.jsonData[i].name+' value='+i+' onclick="'+temp.scName+'.dataClick(this)">'+name+'</td>'
$('#'+trId).append(tdStr)
if((i+1)%temp.colNum==0 && i!=0){
count++;
}
});
}
this.dataClick=function(obj){
//alert($(obj).val())
var i=$(obj).val();
temp.clickCount=i;
var inputId='#'+temp.inputName
$(inputId).attr('value',temp.jsonData[i].name);
$(inputId).attr('state',temp.jsonData[i].value);
}
this.fontLen=function (value){
return value.replace(/[^\x00-\xff]/g, 'xx').length;
}
}
var select=new selectControl('select','select1');
select.init();
$('#select1 div').bgiframe();
太简单了就不写注释了
大家有空的时候踩踩 本来是不想写的想找个控件改改就好结果找不到就知道能写了
jquery 请自己添加这里不多说了
- 大小: 12.2 KB
分享到:
相关推荐
本压缩包“jquery自定义表单控件.zip”聚焦于利用jQuery来创建自定义的表单元素和交互功能,这对于提升用户界面的体验和一致性至关重要。 首先,我们来了解一下jQuery如何帮助我们处理表单控件。在HTML5中,虽然...
《jQuery封装Select实现自定义样式插件:jquery.easydropdown.min.js》 在Web开发中,Select元素是常用的数据选择控件,但其默认样式通常较为单一,无法满足设计师们对界面美观度的需求。jQuery库为我们提供了丰富...
《jQuery多功能Select控件——实现高效交互与美观界面》 在网页开发中,Select控件是常见的用户交互元素,用于提供下拉选项供用户选择。然而,原生的HTML Select控件在功能和视觉效果上往往无法满足现代网页设计的...
**基于jQuery实现的自定义下拉框控件** 在网页开发中,下拉框(Dropdown)是一种常见的用户界面元素,用于提供多个可选项供用户选择。然而,HTML原生的`<select>`标签功能有限,样式调整不便,无法满足一些高级交互...
Bootstrap Dual Listbox是一款基于jQuery和Bootstrap框架的双选列表控件,它为用户提供了便捷的方式来在两个选择框之间同步选项的选取。这个控件尤其适用于需要处理大量可选项目的场景,用户可以轻松地进行批量选择...
**jQuery Select2组件详解** `jQuery Select2`是一款强大的、高度可定制的下拉选择框插件,它在原生HTML `<select>` 元素的基础上提供了丰富的功能和优秀的用户体验。这款组件广泛应用于网页开发中,使得传统的单选...
标题"select:自定义select控件,支持回调函数,高度,宽度"正是指的这种自定义需求。 首先,我们来讨论自定义select控件。在原生HTML中,select元素的功能有限,样式控制也相对简单。为了实现更具交互性和设计感的...
要自定义编辑控件,我们需要实现一个函数,该函数返回一个HTML元素或jQuery对象,这个元素将被用作编辑单元格的内容。函数通常接收两个参数:`options`和`elem`。`options`包含了列定义中的所有参数,`elem`则是当前...
本资源"jquery自定义风格独特的下拉列表控件(可实现单选和多选).zip"提供了一个使用jQuery实现的自定义下拉列表控件,该控件具有独特的设计风格,并支持单选和多选功能,极大地增强了用户界面的交互性和美观性。...
总的来说,Ansel Select是一个强大的移动端自定义选择器插件,它结合了jQuery的便利性和移动端的交互优化,是提升移动应用选择器体验的理想解决方案。通过深入理解和实践,开发者可以充分利用其特性,为用户带来更...
总的来说,jQuery Editable Select 是一个强大的工具,能够为网页中的选择框控件增添编辑和输入功能,提升用户交互体验。通过深入理解和灵活运用这个插件,开发者可以创建出更符合用户需求的动态下拉列表。
`TransSelect.js`是核心的JavaScript代码,它提供了自定义SELECT控件样式的功能。这个脚本可能包含了以下关键知识点: 1. **模拟SELECT控件**:使用HTML、CSS和JavaScript创建一个视觉上与SELECT控件相似但样式可控...
4. **事件监听**:添加事件监听器来处理用户的操作,如点击事件、键盘导航事件等,确保自定义Select具有与原生控件相似的可访问性。 5. **响应式设计**:为了适应不同设备和屏幕尺寸,自定义Select需要考虑响应式...
如果你想要自定义Select2的行为,可以传递配置对象作为参数。例如,你可以设置搜索最小字符数,或者禁用某些功能: ```javascript $("#mySelect2").select2({ minimumInputLength: 1, // 用户至少输入一个字符才能...
10. jtree:jTree是基于jQuery的树形插件,用于在网页上呈现树状数据结构,支持拖放操作、异步加载和自定义节点图标。 11. 常用html控件:这个文件可能包含了其他一些常见的HTML控件示例或代码片段,用于教学或参考...
其中,jQuery UI 日历控件(Calendar Widget)是一个非常流行的功能,它允许开发者在网页上添加美观且功能齐全的日历显示和选择功能。这个控件广泛应用于日期输入、事件管理以及时间安排等多种场景。 首先,我们来...
总结来说,创建一个"jquery 下拉框搜索控件"涉及的主要技术点包括使用jQuery库、引入并应用插件、设置HTML结构、配置和初始化插件以及自定义样式。通过这样的实现,我们可以为用户提供一个高效、直观的搜索体验,...
"jQuery模拟select下拉框插件"就是这样一个工具,它提供了更丰富的交互性和定制性,相比原生的HTML下拉框控件,能够为用户带来更好的体验。下面将详细探讨这个插件的原理、功能以及如何使用。 首先,原生的`<select...