jQuery下拉列表插件jQselectable js代码

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

以下是 jQuery下拉列表插件jQselectable js代码 的示例演示效果:

当前平台(PC电脑)
  • 平台:

部分效果截图1:

jQuery下拉列表插件jQselectable js代码

部分效果截图2:

jQuery下拉列表插件jQselectable js代码

HTML代码(index.html):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta http-equiv="Content-Style-Type" content="text/css" />
	<meta http-equiv="Content-Script-Type" content="text/javascript" />
	<title>jQuery下拉列表插件jQselectable</title>
	<link type="text/css" rel="stylesheet" href="css/style.css" />
	<link type="text/css" rel="stylesheet" href="skin/selectable/style.css" />
	<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
	<script type="text/javascript" src="js/jQselectable.js"></script>
	<script type="text/javascript">
	jQuery(function($){
		$(".selectable").jQselectable({
			set: "fadeIn",
			setDuration: "fast",
			opacity: .9
		});
		
		$(".simpleBox").jQselectable({
			style: "simple",
			set: "slideDown",
			out: "fadeOut",
			setDuration: 150,
			outDuration: 150,
			height: 150,
			opacity: .9
		});
		
		$("#callback").jQselectable({
			style: "simple",
			height: 150,
			opacity: .9,
			callback: function(){
				if($(this).val().length>0) window.location = $(this).val();
			}
		});
		
		// change skins but not for IE
		if(document.all){
			$("#skin").remove();
		}else{
			var css = $("link[type='text/css']");
			$("#skin a").click(function(){
				var href = this.href.split("#")[1];
				css[1].href = css[1].href.replace(/(skin\/)\w+(\/style.css)/,"$1"+href+"$2");
				return false;
			});
		}
	});
	</script>
</head>

<body>

<div class="pagebody"> 
	<h1>jQuery下拉列表插件jQselectable</h1>
	<p id="skin">change styles:<a href="#selectable">selectable</a> | <a href="#natural">natural</a></p>
	<h2>Default selectbox</h2>
	<dl id="noapply">
	    <dt><label for="pref_noapply">1) Default selectbox</label></dt>
	    <dd>
	    	<select id="pref_noapply" name="pref_noapply" class="">
	    		<optgroup label="北海道">
	    			<option value="01">北海道</option>
	    		</optgroup>
	    		<optgroup label="東北">
	    			<option value="02">青森県</option>
	    			<option value="03">岩手県</option>	
	    			<option value="04">宮城県</option>
	    			<option value="05">秋田県</option>
	    			<option value="06">山形県</option>
	    			<option value="07">福島県</option>
	    		</optgroup>
	    		<optgroup label="関東">
	    			<option value="08">東京都</option>
	    			<option value="09">茨城県</option>
	    			<option value="10">栃木県</option>
	    			<option value="11">群馬県</option>
	    			<option value="12">埼玉県</option>
	    			<option value="13">千葉県</option>
	    			<option value="14">神奈川県</option>
	    		</optgroup>
	    		<optgroup label="北陸">
	    			<option value="15">富山県</option>
	    			<option value="16">石川県</option>
	    			<option value="17">福井県</option>
	    		</optgroup>
	    		<optgroup label="甲信越">
	    			<option value="18">新潟県</option>
	    			<option value="19">山梨県</option>
	    			<option value="20">長野県</option>
	    		</optgroup>
	    		<optgroup label="東海">
	    			<option value="21">岐阜県</option>
	    			<option value="22">静岡県</option>
	    			<option value="23">愛知県</option>
	    			<option value="24">三重県</option>
	    		</optgroup>
	    		<optgroup label="関西">
	    			<option value="25">滋賀県</option>
	    			<option value="26">京都府</option>
	    			<option value="27">大阪府</option>
	    			<option value="28">兵庫県</option>
	    			<option value="29">奈良県</option>
	    			<option value="30">和歌山県</option>
	    		</optgroup>
	    		<optgroup label="中四国">
	    			<option value="31">鳥取県</option>
	    			<option value="32">島根県</option>
	    			<option value="33">岡山県</option>
	    			<option value="34">広島県</option>
	    			<option value="35">山口県</option>
	    			<option value="36">徳島県</option>
	    			<option value="37">香川県</option>
	    			<option value="38">愛媛県</option>
	    			<option value="39">高知県</option>
	    		</optgroup>
	    		<optgroup label="九州">
	    			<option value="40">福岡県</option>
	    			<option value="41">佐賀県</option>
	    			<option value="42">長崎県</option>
	    			<option value="43">熊本県</option>
	    			<option value="44">大分県</option>
	    			<option value="45">宮崎県</option>
	    			<option value="46">鹿児島県</option>
	    		</optgroup>
	    		<optgroup label="沖縄">
	    			<option value="47">沖縄県</option>
	    		</optgroup>
	    	</select>
	    </dd>
	</dl>
	
	<h2>jQselectable</h2>
	<dl id="selectable">
	    <dt><label for="pref">2) Prefectures with optgroup not using selected, <strong>selectable</strong></label></dt>
	    <dd>
	    	<select id="pref" name="pref" class="selectable">
	    		<optgroup label="北海道">
	    			<option value="01">北海道</option>
	    		</optgroup>
	    		<optgroup label="東北">
	    			<option value="02">青森県</option>
	    			<option value="03">岩手県</option>	
	    			<option value="04">宮城県</option>
	    			<option value="05">秋田県</option>
	    			<option value="06">山形県</option>
	    			<option value="07">福島県</option>
	    		</optgroup>
	    		<optgroup label="関東">
	    			<option value="08">東京都</option>
	    			<option value="09">茨城県</option>
	    			<option value="10">栃木県</option>
	    			<option value="11">群馬県</option>
	    			<option value="12">埼玉県</option>
	    			<option value="13">千葉県</option>
	    			<option value="14">神奈川県</option>
	    		</optgroup>
	    		<optgroup label="北陸">
	    			<option value="15">富山県</option>
	    			<option value="16">石川県</option>
	    			<option value="17">福井県</option>
	    		</optgroup>
	    		<optgroup label="甲信越">
	    			<option value="18">新潟県</option>
	    			<option value="19">山梨県</option>
	    			<option value="20">長野県</option>
	    		</optgroup>
	    		<optgroup label="東海">
	    			<option value="21">岐阜県</option>
	    			<option value="22">静岡県</option>
	    			<option value="23">愛知県</option>
	    			<option value="24">三重県</option>
	    		</optgroup>
	    		<optgroup label="関西">
	    			<option value="25">滋賀県</option>
	    			<option value="26">京都府</option>
	    			<option value="27">大阪府</option>
	    			<option value="28">兵庫県</option>
	    			<option value="29">奈良県</option>
	    			<option value="30">和歌山県</option>
	    		</optgroup>
	    		<optgroup label="中四国">
	    			<option value="31">鳥取県</option>
	    			<option value="32">島根県</option>
	    			<option value="33">岡山県</option>
	    			<option value="34">広島県</option>
	    			<option value="35">山口県</option>
	    			<option value="36">徳島県</option>
	    			<option value="37">香川県</option>
	    			<option value="38">愛媛県</option>
	    			<option value="39">高知県</option>
	    		</optgroup>
	    		<optgroup label="九州">
	    			<option value="40">福岡県</option>
	    			<option value="41">佐賀県</option>
	    			<option value="42">長崎県</option>
	    			<option value="43">熊本県</option>
	    			<option value="44">大分県</option>
	    			<option value="45">宮崎県</option>
	    			<option value="46">鹿児島県</option>
	    		</optgroup>
	    		<optgroup label="沖縄">
	    			<option value="47">沖縄県</option>
	    		</optgroup>
	    	</select>
	    </dd>
	    <dt><label for="pref2">3) Prefectures with optgroup using selected, <strong>selectable</strong></label></dt>
	    <dd>
	    	<select id="pref2" name="pref2" class="selectable">
	    		<optgroup label="北海道">
	    			<option value="01">北海道</option>
	    		</optgroup>
	    		<optgroup label="東北">
	    			<option value="02">青森県</option>
	    			<option value="03">岩手県</option>	
	    			<option value="04">宮城県</option>
	    			<option value="05">秋田県</option>
	    			<option value="06">山形県</option>
	    			<option value="07">福島県</option>
	    		</optgroup>
	    		<optgroup label="関東">
	    			<option value="08">東京都</option>
	    			<option value="09">茨城県</option>
	    			<option value="10">栃木県</option>
	    			<option value="11">群馬県</option>
	    			<option value="12">埼玉県</option>
	    			<option value="13">千葉県</option>
	    			<option value="14">神奈川県</option>
	    		</optgroup>
	    		<optgroup label="北陸">
	    			<option value="15">富山県</option>
	    			<option value="16">石川県</option>
	    			<option value="17">福井県</option>
	    		</optgroup>
	    		<optgroup label="甲信越">
	    			<option value="18">新潟県</option>
	    			<option value="19">山梨県</option>
	    			<option value="20">長野県</option>
	    		</optgroup>
	    		<optgroup label="東海">
	    			<option value="21">岐阜県</option>
	    			<option value="22">静岡県</option>
	    			<option value="23">愛知県</option>
	    			<option value="24">三重県</option>
	    		</optgroup>
	    		<optgroup label="関西">
	    			<option value="25">滋賀県</option>
	    			<option value="26">京都府</option>
	    			<option value="27" selected="selected">大阪府</option>
	    			<option value="28">兵庫県</option>
	    			<option value="29">奈良県</option>
	    			<option value="30">和歌山県</option>
	    		</optgroup>
	    		<optgroup label="中四国">
	    			<option value="31">鳥取県</option>
	    			<option value="32">島根県</option>
	    			<option value="33">岡山県</option>
	    			<option value="34">広島県</option>
	    			<option value="35">山口県</option>
	    			<option value="36">徳島県</option>
	    			<option value="37">香川県</option>
	    			<option value="38">愛媛県</option>
	    			<option value="39">高知県</option>
	    		</optgroup>
	    		<optgroup label="九州">
	    			<option value="40">福岡県</option>
	    			<option value="41">佐賀県</option>
	    			<option value="42">長崎県</option>
	    			<option value="43">熊本県</option>
	    			<option value="44">大分県</option>
	    			<option value="45">宮崎県</option>
	    			<option value="46">鹿児島県</option>
	    		</optgroup>
	    		<optgroup label="沖縄">
	    			<option value="47">沖縄県</option>
	    		</optgroup>
	    	</select>
	    </dd>
	    <dt><label for="pref_noopt">4) Prefectures without optgrout using br class, <strong>selectable</strong></label></dt>
	    <dd>
	    	<select id="pref_noopt" name="pref_noopt" class="selectable">
	    		<option value="01" class="br">北海道</option>
	    		<option value="02">青森県</option>
	    		<option value="03">岩手県</option>	
	    		<option value="04">宮城県</option>
	    		<option value="05">秋田県</option>
	    		<option value="06">山形県</option>
	    		<option value="07" class="br">福島県</option>
	    		<option value="08">東京都</option>
	    		<option value="09">茨城県</option>
	    		<option value="10">栃木県</option>
	    		<option value="11">群馬県</option>
	    		<option value="12">埼玉県</option>
	    		<option value="13">千葉県</option>
	    		<option value="14" class="br">神奈川県</option>
	    		<option value="15">富山県</option>
	    		<option value="16">石川県</option>
	    		<option value="17" class="br">福井県</option>
	    		<option value="18">新潟県</option>
	    		<option value="19">山梨県</option>
	    		<option value="20" class="br">長野県</option>
	    		<option value="21">岐阜県</option>
	    		<option value="22">静岡県</option>
	    		<option value="23">愛知県</option>
	    		<option value="24" class="br">三重県</option>
	    		<option value="25">滋賀県</option>
	    		<option value="26">京都府</option>
	    		<option value="27">大阪府</option>
	    		<option value="28">兵庫県</option>
	    		<option value="29">奈良県</option>
	    		<option value="30" class="br">和歌山県</option>
	    		<option value="31">鳥取県</option>
	    		<option value="32">島根県</option>
	    		<option value="33">岡山県</option>
	    		<option value="34">広島県</option>
	    		<option value="35">山口県</option>
	    		<option value="36">徳島県</option>
	    		<option value="37">香川県</option>
	    		<option value="38">愛媛県</option>
	    		<option value="39" class="br">高知県</option>
	    		<option value="40">福岡県</option>
	    		<option value="41">佐賀県</option>
	    		<option value="42">長崎県</option>
	    		<option value="43">熊本県</option>
	    		<option value="44">大分県</option>
	    		<option value="45">宮崎県</option>
	    		<option value="46">鹿児島県</option>
	    		<option value="47">沖縄県</option>
	    	</select>
	    </dd>
	    <dt>5) Days using br class, <strong>selectable</strong></dt>
	    <dd>
	    	<select name="date_year" id="date_year" class="selectable m_year">
	    		<option value="1980">1980</option>
	    		<option value="1981">1981</option>
	    		<option value="1982">1982</option>
	    		<option value="1983">1983</option>
	    		<option value="1984">1984</option>
	    		<option value="1985">1985</option>
	    		<option value="1986">1986</option>
	    		<option value="1987">1987</option>
	    		<option value="1988">1988</option>
	    		<option value="1989" class="br">1989</option>
	    		<option value="1990">1990</option>
	    		<option value="1991">1991</option>
	    		<option value="1992">1992</option>
	    		<option value="1993">1993</option>
	    		<option value="1994">1994</option>
	    		<option value="1995">1995</option>
	    		<option value="1996">1996</option>
	    		<option value="1997">1997</option>
	    		<option value="1998">1998</option>
	    		<option value="1999" class="br">1999</option>
	    		<option value="2000">2000</option>
	    		<option value="2001">2001</option>
	    		<option value="2002">2002</option>
	    		<option value="2003">2003</option>
	    		<option value="2004">2004</option>
	    		<option value="2005">2005</option>
	    		<option value="2006">2006</option>
	    		<option value="2007">2007</option>
	    		<option value="2008" selected="selected">2008</option>
	    		<option value="2009">2009</option>
	    	</select> 年
	    	<select name="date_month" id="date_month" class="selectable m_month">
	    		<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>
	    		<option value="6">6</option>
	    		<option value="7">7</option>
	    		<option value="8">8</option>
	    		<option value="9">9</option>
	    		<option value="10">10</option>
	    		<option value="11">11</option>
	    		<option value="12">12</option>
	    	</select> 月
	    	<select name="date_day" id="date_day" class="selectable m_day">
	    		<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>
	    		<option value="6">6</option>
	    		<option value="7" class="br">7</option>
	    		<option value="8">8</option>
	    		<option value="9">9</option>
	    		<option value="10">10</option>
	    		<option value="11">11</option>
	    		<option value="12">12</option>
	    		<option value="13">13</option>
	    		<option value="14" class="br">14</option>
	    		<option value="15">15</option>
	    		<option value="16">16</option>
	    		<option value="17">17</option>
	    		<option value="18">18</option>
	    		<option value="19">19</option>
	    		<option value="20">20</option>
	    		<option value="21" class="br">21</option>
	    		<option value="22">22</option>
	    		<option value="23">23</option>
	    		<option value="24">24</option>
	    		<option value="25">25</option>
	    		<option value="26">26</option>
	    		<option value="27">27</option>
	    		<option value="28" class="br">28</option>
	    		<option value="29">29</option>
	    		<option value="30">30</option>
	    		<option value="31">31</option>
	    	</select> 日	
	    </dd>
	</dl>
	
	<h2>Simplebox</h2>
	<dl id="simpleBox">
	    <dt><label for="pref_noopt2">6) Prefectures without optgroup, <strong>simpleBox</strong></label></dt>
	    <dd>
	    	<select id="pref_noopt2" name="pref_noopt2" class="simpleBox">
	    		<option value="01">北海道</option>
	    		<option value="02">青森県</option>
	    		<option value="03">岩手県</option>	
	    		<option value="04">宮城県</option>
	    		<option value="05">秋田県</option>
	    		<option value="06">山形県</option>
	    		<option value="07">福島県</option>
	    		<option value="08">東京都</option>
	    		<option value="09">茨城県</option>
	    		<option value="10">栃木県</option>
	    		<option value="11">群馬県</option>
	    		<option value="12">埼玉県</option>
	    		<option value="13">千葉県</option>
	    		<option value="14">神奈川県</option>
	    		<option value="15">富山県</option>
	    		<option value="16">石川県</option>
	    		<option value="17">福井県</option>
	    		<option value="18">新潟県</option>
	    		<option value="19">山梨県</option>
	    		<option value="20">長野県</option>
	    		<option value="21">岐阜県</option>
	    		<option value="22">静岡県</option>
	    		<option value="23">愛知県</option>
	    		<option value="24">三重県</option>
	    		<option value="25">滋賀県</option>
	    		<option value="26">京都府</option>
	    		<option value="27">大阪府</option>
	    		<option value="28">兵庫県</option>
	    		<option value="29">奈良県</option>
	    		<option value="30">和歌山県</option>
	    		<option value="31">鳥取県</option>
	    		<option value="32">島根県</option>
	    		<option value="33">岡山県</option>
	    		<option value="34">広島県</option>
	    		<option value="35">山口県</option>
	    		<option value="36">徳島県</option>
	    		<option value="37">香川県</option>
	    		<option value="38">愛媛県</option>
	    		<option value="39">高知県</option>
	    		<option value="40">福岡県</option>
	    		<option value="41">佐賀県</option>
	    		<option value="42">長崎県</option>
	    		<option value="43">熊本県</option>
	    		<option value="44">大分県</option>
	    		<option value="45">宮崎県</option>
	    		<option value="46">鹿児島県</option>
	    		<option value="47">沖縄県</option>
	    	</select>
	    </dd>
	    <dt>7) Days, <strong>simpleBox</strong></dt>
	    <dd>
	    	<select name="date_year2" id="date_year2" class="simpleBox s_year">
	    		<option value="1980">1980</option>
	    		<option value="1981">1981</option>
	    		<option value="1982">1982</option>
	    		<option value="1983">1983</option>
	    		<option value="1984">1984</option>
	    		<option value="1985">1985</option>
	    		<option value="1986">1986</option>
	    		<option value="1987">1987</option>
	    		<option value="1988">1988</option>
	    		<option value="1989">1989</option>
	    		<option value="1990">1990</option>
	    		<option value="1991">1991</option>
	    		<option value="1992">1992</option>
	    		<option value="1993">1993</option>
	    		<option value="1994">1994</option>
	    		<option value="1995">1995</option>
	    		<option value="1996">1996</option>
	    		<option value="1997">1997</option>
	    		<option value="1998">1998</option>
	    		<option value="1999">1999</option>
	    		<option value="2000">2000</option>
	    		<option value="2001">2001</option>
	    		<option value="2002">2002</option>
	    		<option value="2003">2003</option>
	    		<option value="2004">2004</option>
	    		<option value="2005">2005</option>
	    		<option value="2006">2006</option>
	    		<option value="2007">2007</option>
	    		<option value="2008">2008</option>
	    		<option value="2009">2009</option>
	    	</select> /
	    	<select name="date_month2" id="date_month2" class="simpleBox s_month">
	    		<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>
	    		<option value="6">6</option>
	    		<option value="7">7</option>
	    		<option value="8">8</option>
	    		<option value="9">9</option>
	    		<option value="10">10</option>
	    		<option value="11">11</option>
	    		<option value="12">12</option>
	    	</select> /
	    	<select name="date_day2" id="date_day2" class="simpleBox s_day">
	    		<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>
	    		<option value="6">6</option>
	    		<option value="7">7</option>
	    		<option value="8">8</option>
	    		<option value="9">9</option>
	    		<option value="10">10</option>
	    		<option value="11">11</option>
	    		<option value="12">12</option>
	    		<option value="13">13</option>
	    		<option value="14">14</option>
	    		<option value="15">15</option>
	    		<option value="16">16</option>
	    		<option value="17">17</option>
	    		<option value="18">18</option>
	    		<option value="19">19</option>
	    		<option value="20">20</option>
	    		<option value="21">21</option>
	    		<option value="22">22</option>
	    		<option value="23">23</option>
	    		<option value="24">24</option>
	    		<option value="25">25</option>
	    		<option value="26">26</option>
	    		<option value="27">27</option>
	    		<option value="28">28</option>
	    		<option value="29">29</option>
	    		<option value="30">30</option>
	    		<option value="31">31</option>
	    	</select> 
	    </dd>
	</dl>
	
	<h2>Using Callback</h2>
	<dl id="callbacks">
	    <dt><label for="callback">8) Selector, <strong>Callback</strong></label></dt>
	    <dd>
	    	<select id="callback" name="callback" class="callback">
	    		<option value="">select me</option>
	    		<option value="#">moto-mono</option>
	    		<option value="#">Goolge</option>
	    		<option value="#">Gmail</option>
	    		<option value="#">Google 画像検索</option>
	    		<option value="#">Yahoo</option>
	    		<option value="#">Livedoor</option>
	    	</select>
	    </dd>
	</dl>
</div>
</body>
</html>

JS代码(jQselectable.js):

/*title:jQuery.jQselectable.js (ex jQuery.selectable.js)required:jQuery(tested on 1.4.2)encoding:UTF-8copy:Copyright 2008-2010 nori (norimania@gmail.com)license:MITauthor:5509 - http://5509.me/archive:http://jqselectable.googlecode.com/modified:2010-12-02 14:00rebuild:2009-09-16 22:48date:2008-09-14 02:34 */
(function($){
	// jQuery.jQselectable// Make selectbox so usuful and accesible// @ 2010-01-09var jQselectable = function(select,options,temp){
	this.conf ={
	style:'selectable',// or 'simple'set:'show',// 'show','slideDown' or 'fadeIn'out:'hide',// 'hide','slideUp' or 'fadeOut'setDuration:'normal',// 'slow','normal','fast' or int(millisecond)outDuration:'normal',opacity:1,// pulldown opacitytop:0,left:0,callback:null}
this.temp ={
	selectable:'<div class="sctble_cont"/>',simpleBox:'<div class="simple_cont"/>'}
// Extend confs and temps by user options$.extend(this.conf,options ||{
}
);
	$.extend(this.temp,temp ||{
}
);
	this.target = $(select);
	this.matHeight = 0;
	this.attrs ={
	id:this.target.attr('id'),cl:this.target.attr('class')}
this.generatedFlg = false;
	// Init startthis.init();
}
jQselectable.prototype ={
	// Init selectable// @ 10-01-09 21:00init:function(){
	// Build selectablethis.build();
	// Event applythis.bind_events();
	// Switch flag truethis.generatedFlg = true;
}
,// Rebuild selectable// @ 09-09-18 17:28rebuild:function(){
	//console.log('called rebuild');
	// unbind events from elements related selectablethis.m_input.unbind();
	this.mat.unbind();
	$('a',this.mat).unbind();
	$('label[for="'+this.attrs.id+'"]').unbind();
	// Build selectablethis.build();
	// Event applythis.bind_events();
}
,// Building selectable from original select element// @ 2010-01-09 21:00build:function(){
	// Declare flagvar has_optgroup = $('optgroup',this.target).length>0 ? true:false;
	var _this = this;
	var generate_anchors = function(obj,parent){
	var _a = $('<a/>');
	$(parent).append(_a);
	_a.text(obj.text()).attr({
	href:'#'+encodeURI(obj.text()),name:obj.val()}
);
	if ( obj.is(':selected') ){
	_this.m_text.text(obj.text());
	_a.addClass('selected');
}
if ( obj.hasClass('br') ){
	_a.after('<br/>');
}
}
if ( !this.m_input ){
	this.m_input = $('<a/>');
	this.m_text = $('<span/>');
	var _style = this.conf.style.match(/simple/) ? 'sBox':'sctble';
	this.m_input.append(this.m_text).attr({
	id:this.attrs.id+'_dammy',href:'#'}
).addClass('sctble_display').addClass(_style).addClass(this.attrs.cl).insertAfter(this.target);
	this.target.hide();
	this.mat = $('<div/>');
	// Customizedif ( _style == 'simple' ){
	this.mat.append(this.temp.selectable);
}
else{
	this.mat.append(this.temp.simpleBox);
}
// Customized endthis.mat.attr({
	id:this.attrs.id+'_mat'}
).addClass(_style).addClass(this.attrs.cl);
}
// For rebuildingif ( this.generatedFlg){
	this.mat.empty();
	if ( _style == 'simple' ){
	this.mat.append(this.temp.selectable);
}
else{
	this.mat.append(this.temp.simpleBox);
}
}
this._div = $('<div class="body"/>');
	if ( has_optgroup ){
	this.mat.addClass('otpgroup');
	var _optgroup = $('optgroup',this.target);
	var _option = [];
	for ( var i=0;
	i<_optgroup.length;
	i++ ){
	_option[i] = $('option',_optgroup[i]);
}
var _dl = $('<dl/>');
	for ( var i=0;
	i<_optgroup.length;
	i++ ){
	var _dt = $('<dt/>');
	_dt.text($(_optgroup[i]).attr('label'));
	var _dd = $('<dd/>');
	for ( var j=0;
	j<_option[i].length;
	j++ ){
	generate_anchors($(_option[i][j]),_dd);
}
_dl.append(_dt).append(_dd);
}
this._div.append(_dl).addClass('optg');
	$('div',this.mat).append(this._div);
}
else{
	this.mat.addClass('nooptgroup');
	var _option = $('option',this.target);
	for ( var i=0;
	i<_option.length;
	i++ ){
	generate_anchors($(_option[i]),this._div);
}
$('div',this.mat).append(this._div.addClass('nooptg'));
}
// For rebuildingif ( !this.generatedFlg ){
	$('body').append(this.mat);
	this.mat.addClass('sctble_mat').css({
	position:'absolute',zIndex:1000,display:'none'}
);
	$('*:first-child',this.mat).addClass('first-child');
	$('*:last-child',this.mat).addClass('last-child');
}
// This is for IE6 that doesn't have "max-height" propertiesif ( document.all && typeof document.body.style.maxHeight == 'undefined' ){
	if ( this.conf.height < this.mat.height() ){
	$(this._div).css('height',this.conf.height);
}
// Other browsers}
else{
	$(this._div).css('maxHeight',this.conf.height);
}
// get height of the matthis.mat.show();
	this.matHeight = this.mat.attr('offsetHeight');
	this.mat.hide();
}
,// Bind events// @ 09-09-17 22:59bind_events:function(){
	var _this = this;
	// Flag checking where the events was calledvar is_called = true;
	var set_pos = function(){
	var topPos,scrollTop = document.documentElement.scrollTop || document.body.scrollTop,clientHeight = document.documentElement.clientHeight || document.body.clientHeight,_pos = _this.m_input.offset();
	if ( clientHeight/2 < (_pos.top - scrollTop) ){
	topPos = _pos.top - _this.matHeight + _this.conf.top - 5;
}
else{
	topPos = _pos.top + _this.m_input.height()*1.3 + _this.conf.top;
}
_this.mat.css({
	top:topPos,left:_pos.left + _this.conf.left}
);
}
$(window).resize(function(){
	set_pos();
}
);
	// Hide all mats are displayedvar mat_hide = function(){
	var _mat = $('.sctble_mat');
	switch( _this.conf.out ){
	case 'slideUp':_mat.slideUp(_this.conf.outDuration);
	break;
	case 'fadeOut':_mat.fadeOut(_this.conf.outDuration);
	break;
	default:_mat.hide();
	break;
}
}
// Show the matvar mat_show = function(){
	mat_hide();
	if ( _this.conf.set == 'slideDown' ){
	var scrollTop = document.documentElement.scrollTop || document.body.scrollTop,clientHeight = document.documentElement.clientHeight || document.body.clientHeight,_pos = _this.m_input.offset(),balance = clientHeight/2 < (_pos.top - scrollTop);
	if ( balance ){
	_this.mat.css('top',_pos.top + _this.conf.top - 5);
}
}
if ( _this.conf.set == 'slideDown' ){
	if ( balance ){
	_this.mat.animate({
	height:'toggle',top:parseInt(_this.mat.css('top')) - _this.matHeight}
,{
	easing:'swing',duration:_this.conf.setDuration}
).css('opacity',_this.conf.opacity);
}
else{
	_this.mat.slideDown(_this.conf.setDuration).css('opacity',_this.conf.opacity);
}
}
elseif ( _this.conf.set == 'fadeIn' ){
	_this.mat.css({
	display:'block',opacity:0}
).fadeTo(_this.conf.setDuration,_this.conf.opacity);
}
else{
	_this.mat.show().css('opacity',_this.conf.opacity);
}
var _interval = isNaN(_this.conf.setDuration) ? null:_this.conf.setDuration+10;
	if( _interval == null ){
	if ( _this.conf.setDuration.match(/slow/) ){
	interval = 610;
}
else if ( _this.conf.setDuration.match(/normal/) ){
	interval = 410;
}
else{
	interval = 210;
}
}
var _chk = setInterval(function(){
	$('a.selected',_this.mat).focus();
	clearInterval(_chk);
}
,_interval);
}
// Call selectablethis.m_input.click(function(event){
	if ( _this.mat.is(':visible') ) return false;
	set_pos();
	$(this).addClass('sctble_focus');
	$('a.sctble_display').not(this).removeClass('sctble_focus');
	mat_show();
	event.stopPropagation();
	return false;
}
).keyup(function(event){
	if( is_called ){
	set_pos();
	mat_show();
	event.stopPropagation();
}
else{
	is_called = true;
}
}
);
	// Stop event propagationthis.mat.click(function(event){
	event.stopPropagation();
}
);
	// Hide the mat$('body,a').not('a.sctble_display').click(function(event){
	$('a.sctble_display').removeClass('sctble_focus');
	mat_hide();
}
).not('a').keyup(function(event){
	if ( event.keyCode=='27' ){
	$('a.sctble_focus').removeClass('sctble_focus');
	is_called = false;
	_this.m_input.blur();
	mat_hide();
}
}
);
	// Click value append to both dummy and change original select value$('a',this.mat).click(function(){
	var self = $(this);
	_this.m_text.text(decodeURI(self.attr('href').split('#')[1]));
	$('option[value="'+self.attr('name')+'"]',_this.target).attr('selected','selected');
	$('.selected',_this.mat).removeClass('selected');
	self.addClass('selected');
	_this.m_input.removeClass('sctble_focus');
	is_called = false;
	mat_hide();
	if ( _this.conf.callback && typeof _this.conf.callback=='function' ){
	_this.conf.callback.call(_this.target);
}
_this.m_input.focus();
	return false;
}
);
	// Be able to click original select label$('label[for="'+this.attrs.id+'"]').click(function(event){
	set_pos();
	_this.m_input.addClass('sctble_focus');
	$('a.sctble_focus').not(_this.m_input).removeClass('sctble_focus');
	mat_show();
	event.stopPropagation();
	return false;
}
);
}
}
// Extense the namespace of jQuery as method// This function returns (the) instance(s)$.fn.jQselectable = function(options,temp){
	if ( $(this).length>1 ){
	var _instances = [];
	$(this).each(function(i){
	_instances[i] = new jQselectable(this,options,temp);
}
);
	return _instances;
}
else{
	return new jQselectable(this,options,temp);
}
}
// If namespace of jQuery.fn has 'selectable',this is 'jQselectable'// To prevent the interference of namespace// You can call 'selectable' method by both 'jQuery.fn.selectable' and 'jQuery.fn.jQselectable' you likeif ( !jQuery.fn.selectable ){
	$.fn.selectable = $.fn.jQselectable;
}
}
)(jQuery);
	

CSS代码(style.css):

@charset "utf-8";@import url("share/default.css");@import url("share/fonts.css");/* Clearfix=================================*/
.clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
.clearfix{display:inline-block;}
/* Hide from Mac IE \*/
.clearfix{display:block;}
* html .clearfix{height:1%;}
/* Hide from Mac IE */
/* =========================================* COMMON* ========================================= */
html{height:100%;}
body{padding:1em;height:100%;color:#252525;background:#ccc;font-family:Helvetica;}
p.note{margin:0 auto;width:830px;padding:0 0 .5em;text-align:right;}
h1{text-align:center;}
h1:first-letter{}
h1 a{}
a{color:#00f;text-decoration:underline;}
a:hover{text-decoration:none;}
div.sctble_mat{font-size:93%;}
/* =========================================* FRAME* ========================================= */
div.pagebody{margin:0 auto 1em;padding:15px;width:800px;background:#fafafa;}
h2{margin-top:1em;border:solid #ccc 1px;border-top:none;border-right:none;border-left-width:5px;padding:.3em .7em;font-size:116%;}
p#skin{margin-top:1.5em;}
dl{padding:0 1em 1em;}
dl dt{padding-top:1.5em;}
dl dd{padding-top:.5em;}
p.copy{margin-top:1em;border-top:solid #ccc 1px;padding:1em 0 0;text-align:center;}
/* =========================================* jQuery selectable* ========================================= */
input#callback_dammy{width:9.5em;}
附件:下载该文件资源,减少时间成本(增值服务)
留言
该资源可下载
File Source
.rar
61.48 KB
jquery特效1
最新结算
HTM5 Canvas实现3D飞机飞行动画特效代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
HTM5 Canvas实现3D飞机飞行动画特效代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery图像缩放工具插件Zoomer特效代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery图像缩放工具插件Zoomer特效代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
Labelauty–jQuery单选框_复选框美化插件特效代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
Labelauty–jQuery单选框_复选框美化插件特效代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery网页版打砖块小游戏源码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery网页版打砖块小游戏源码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章