下拉框是我們應用的比較多的頁面元素,結合實際工作中遇到的問題說一下關於下拉框注冊事件的一些例子,希望對大家有所幫助。
$(function () { $(".events").change(function () { if ($(this).children('option:selected').val() == '所有事件') { $(".wrapper").addClass("all"); $(".wrapper").removeClass("emerency"); $(".wrapper").removeClass("normal"); } else if ($(this).children('option:selected').val() == '緊急事件') { $(".options").show(); $(".button").show(function(){ $(this).click(function(){ $(".timefly").show(); setTimeout(function(){$(".timefly").hide(function(){ // $(".wrapper").hide(); $(".three-page").show(); });},5000); }) }) // $(".wrapper").css("background-image", "url('img/emergency.png')") $(".wrapper").addClass("emergency"); $(".wrapper").removeClass("all"); $(".wrapper").removeClass("normal"); } else if ($(this).children('option:selected').val() == '普通事件') { $(".wrapper").addClass("normal"); $(".wrapper").removeClass("all"); $(".wrapper").removeClass("emergency"); } });
代碼如下:
<select name="" id="sel"> <option value="111">1</option> <option value="222">2</option> <option value="333">3</option> </select>
以上是一段非常簡單的單選下拉框代碼,如果我們要通過單擊下拉選項獲取對應的value,大致的代碼如下:
代碼如下:
var sel=document.getElementById("sel"); var option=sel.options; for(var i=0;i<option.length;i++){ option[i].onclick=function(){ alert(this.text);//獲取下拉選項的文本值 alert(this.value);//獲取下拉選項的value值 } }
以上代碼在ie9以下以及chrome上不能產生預期效果,在Firefox上有效。
針對這種情況,不建議在option選項上綁定click事件,建議利用change事件來代替,因為change是通用的,從本質上看來就是change。
代碼如下:
var sel=document.getElementById("sel"); sel.onchange=function(){ alert(sel.options[sel.selectedIndex].value); }