300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > JQuery SELECT单选模拟jQuery.select.js

JQuery SELECT单选模拟jQuery.select.js

时间:2020-09-13 01:33:20

相关推荐

JQuery SELECT单选模拟jQuery.select.js

今天小编给大家精心推荐个JQuery SELECT单选模拟教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~

基于jQueryJavaScriptLibrary v1.3.2 的单选模拟

(本文件是跟据 zhangjingwei 的JquerySelect(单选) 模拟插件 V1.3.4 修改而来的)

a. 修改的主要原因是,原来的zhangjingwei的模拟在显示方式上的问题。在跟文字交替出现时会出现错位。现将模拟DIV的display修改为inline方式。更自然的嵌入到文本行中。

b.在加载文件后自动转化样式名为commonselect 的select。简化调用

c.对select的onchange()事件的响应。以及宽度获取的小调整

jquery.select.js

代码如下:

/*

*

*/

= function(){

var selectId = $(this).attr(id);

var selectZindex = $(this).css(z-index);

var selectIndex = $(#+selectId+ select option).index($(#+selectId+ select )[0]);

$(#+selectId).append(divh4/h4span/spanulli/li/ul/div);

$(#+selectId+ div h4).empty().append($(#+selectId+ select ).text());

$(.dropselectbox).css("display", lock);

//取select的宽度 优先级 select样式中的宽度 - select自动的宽度 - 默认为60

var selectcssWidth = $(#+selectId+ select).css(width);

selectcssWidth = typeof(selectcssWidth) =="undefined" ? 0 : parseInt((\,\)) +5 ;

var selectWidth = selectcssWidth ? selectcssWidth : ( $(#+selectId+ select).width() 0 ? $(#+selectId+ select).width() + 5 : 60);

$(#+selectId).css("margin-right",selectWidth);//修改偏移量

$(#+selectId+ div h4).css("width", selectWidth); //将原select的宽度赋值给生成的select(并不是h4的总宽度)

$(#+selectId+ div ul).css("width",selectWidth); //将h4的总宽度赋值给Ul

$(#+selectId+ select).hide();

$(#+selectId+ div).hover(function(){

$(#+selectId+ div h4).addClass("over");

$(#+selectId+ div span).addClass("over");

},function(){

$(#+selectId+ div h4).removeClass("over");

$(#+selectId+ div span).removeClass("over");

});

$(#+selectId)

.bind("focus",function(){

__clearSelectMenu();

$(#+selectId+ div h4).addClass("over");

$(#+selectId+ div span).addClass("over");

})

.bind("click",function(e){

//$(#value2).append(点击:+selectIndex+ br);

if($(#+selectId+ div ul).css("display") == lock){

__clearSelectMenu(selectId);

return false;

}else{

if ($.){__clearSelectMenu();}

$(#+selectId+ div h4).addClass("current");

$(#+selectId+ div span).addClass("over").addClass("current");

$(#+selectId+ div ul).show();

var selectZindex = $(this).css(z-index);

if ($. || $.){

$(.dropdown).removeClass(overclass);

}

$(#+selectId).addClass(overclass);

__setSelectValue(selectId);

varwindowspace = ($(window).scrollTop() + ) - $(this).offset().top;

var ulspace = $(#+selectId+ div ul).outerHeight(true);

var windowspace2 = $(this).offset().top - $(window).scrollTop() - ulspace;

if (windowspace ulspace && windowspace2 0) {

$(#+selectId+ div ul).css({top:-ulspace});

}else{

$(#+selectId+ div ul).css({top:$(#+selectId+ div h4).outerHeight(true)});

}

selectIndex = $(#+selectId+ div ul li).index($(.selectedli)[0]);

$(window).scroll(function(){

var windowspace = ($(window).scrollTop() + ) - $(#+selectId).offset().top;

var ulspace = $(#+selectId+ div ul).outerHeight(true);

if (windowspace ulspace) {

$(#+selectId+ div ul).css({top:-ulspace});

}else{

$(#+selectId+ div ul).css({top:$(#+selectId+ div h4).outerHeight(true)});

}

});

//响应鼠标点击选择

$(#+selectId+ div ul li).click(function(e){

selectIndex = $(#+selectId+ div ul li).index(this);

//$(#value2).append(鼠标点击:+selectIndex+ br);

$(#+selectId+ select)[0].selectedIndex = selectIndex;

$(#+selectId+ div h4).empty().append($(#+selectId+ select ).text());

__clearSelectMenu(selectId,selectZindex);

();

= true;

//SELECT onchange 事件

$(#+selectId+ select).change();

})

.hover(

function(){

$(#+selectId+ div ul li).removeClass("over");

$(this).addClass("over").addClass("selectedli");

selectIndex = $(#+selectId+ div ul li).index(this);

},

function(){

$(this).removeClass("over");

}

);

//End

};

();

})

.bind("mousewheel",function(){

//以后也许支持滚轮

/*$(#+selectId+ div ul li).hover(

function(){

return false;

},

function(){

return false;

}

);*/

})

.bind("dblclick", function(){

__clearSelectMenu();

return false;

})

.bind("keydown",function(e){

//var hotkeys = ;

$(this).bind(keydown,function(e){

if ( == 40 || == 38 || == 35 || == 36){

return false;

}

});

switch(){ //设置为true可给定case范围

case 9:

return true;

break;

case 13:

//enter

//$(#value2).append(按回车收到的值:+selectIndex+ br);

__clearSelectMenu();

break;

case 27:

//esc

__clearSelectMenu();

break;

case 33:

$(#+selectId+ div ul li).removeClass("over");

selectIndex = 0;

__keyDown(selectId,selectIndex);

break;

case 34:

$(#+selectId+ div ul li).removeClass("over");

selectIndex = ($(#+selectId+ select option).length - 1);

__keyDown(selectId,selectIndex);

break;

case 35:

$(#+selectId+ div ul li).removeClass("over");

selectIndex = ($(#+selectId+ select option).length - 1);

__keyDown(selectId,selectIndex);

break;

case 36:

$(#+selectId+ div ul li).removeClass("over");

selectIndex = 0;

__keyDown(selectId,selectIndex);

break;

case 38:

//up

//$(#value2).append(原始值:+selectIndex+ br);

$(#+selectId+ div ul li).removeClass("over");

if (selectIndex == 0){

selectIndex = 0;

}else{

selectIndex--;

};

//$(#value2).append(span向上改变的aa值:/span+selectIndex+ );

__keyDown(selectId,selectIndex);

break;

case 40:

//down

//$(#value2).append(传递过来的:+selectIndex+ );

$(#+selectId+ div ul li).removeClass("over");

if (selectIndex == ($(#+selectId+ select option).length - 1)){

selectIndex = $(#+selectId+ select option).length - 1;

}else{

selectIndex ++;

};

//$(#value2).append(span向下改变的aa值:/span+selectIndex+ );

__keyDown(selectId,selectIndex);

break;

/*case ((hotkeys 47 && hotkeys 59) || (hotkeys 64 && hotkeys 91) || (hotkeys 96 && hotkeys 123)):

//首字幕查询预留接口

//character = ()();

return false;

break;*/

default:

return false;

break;

};

})

.bind("blur",function(){

__clearSelectMenu(selectId,selectZindex);

return false;

});

//禁止选择

$(.dropselectbox).bind("selectstart",function(){

return false;

});

};

function __clearSelectMenu(selectId,selectZindex){

//$(#value2).append(移除焦点:+selectIndex+ br);

$(.dropselectbox ul).empty().hide();

$(.dropselectbox h4).removeClass("over").removeClass("current");

$(.dropselectbox span).removeClass("over");

$(#+selectId).removeClass(overclass);

}

function __setSelectValue(sID){

$(#+sID+ div ul).empty();

$.each($(#+sID+ select option), function(i){

$(#+sID+ div ul).append("li"+$(this).text()+"/li");

});

$(#+sID+ div h4).empty().append($(#+sID+ select ).text());

$(#+sID+ div ul li).eq($(#+sID+ select)[0].selectedIndex).addClass("over").addClass("selectedli");

}

function __keyDown(sID,selectIndex){

$(#+sID+ select)[0].selectedIndex = selectIndex;

$(#+sID+ div ul (++)).toggleClass("over");

$(#+sID+ div h4).empty().append($(#+sID+ select ).text());

//SELECT onchange 事件

$(#+sID+ select).change();

}

/* 自动调用 */

$(document).ready(function(){

var s = new Array();

var t = (\);

var j = 0;

for(var i=0;++){

if(t[i].className=="commonselect"){

s[j] = t[i];

j++;

}

}

if(j==0)return;

var k = m = null;

for(var i=0;++){

k = s[i].parentNode;

m = createDiv(k, i);

//s[i].replaceNode(m);

(,)

();

$(#selectbox+ i).sSelect();

}

function createDiv(p, i){

var div = (\);

= dropdown;

div.id = selectbox + i;

= ;

();

return div;

}

})

HTML应用

代码如下:

!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0 Transitional//EN" ""

html xmlns=""

head

meta http-equiv="Content-Type" content="text/html; charset=utf-8" /

titleJQuery SELECT单选模拟/title

style type="text/css" bogus="1"

body,div,ul,h4,li {margin:0; padding:0; ; ; font-size:1;}

/*下拉列表select的commonselect样式 配合插件 */

/* select style */

.dropdown {*; ;}

.dropdown * {-;}

.dropselectbox{; }

.overclass{ } /* 对于IE下层定位问题的修正样式 */

.dropdown h4{;cursor:default; ; margin:0; Arial, Helvetica, sans-serif; 1px #AAA; background:#3B3936 ;color:#CEBC7E;;}

.dropdown {#;}

.dropdown {#;}

.dropdown div {display:none;; ; ;}

.dropdown span {;top:4px; ; () no-repeat center; ; ;}

.dropdown ul{;display:none;border:1px solid #AAA; background:#333;color:#8E867B;}

.dropdown ul li{# 12px/19px Arial, Helvetica, sans-serif;;}

.dropdown ul {#; color:#FFF;}

/* select style */

/* input style */

input.txt{ 1px #AAA; background:#3B3936 ;color:#CEBC7E; ;}

/style

script type="text/javascript" src="jquery132.js" src="jquery132.js"/script

script type="text/javascript" src="jquery.select.js" src="jquery.select.js"/script

/head

body

h1Jquery Select(单选) 模拟插件 V1.3.4/h1

form action="#" method="post"

类型:

select name="type"

option value=""/option

option value="男"类型男/option

option value="女"类型女/option

/select

性别:

select name="sex" onchange="alert();"

option value=""性别:/option

option value="男"男/option

option value="女"女/option

/select

input type="text" size="8" name="input"

input type="submit" value="提交表单" /

/form

/body

/html

可以参考这篇文档

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。