jQuery为动态生成的select元素添加事件的方法

项目中需要在点击按钮时动态生成select元素,为防止每次点击按钮时从服务器端获取数据(因为数据都是相同的),可以这样写代码

1、首先定义全局js变量

var strVoucherGroupSelect ="";

2、在js中写好获取服务端数据的代码

functiongenVoucherGroupSelect(rowID){

return$(strVoucherGroupSelect).attr("id","sl_"+ rowID).parent().html();//返回增加ID后的下拉框完整html

}

functiongetVoucherGroupData(){

$.ajax({

type:"Post",

url:"/BillWeb/OrgVoucher/GetVoucherGroup",

dataType:"json",

data:"",

cache:true,

success:function(res) {

varstr = $("<select></select>");

varoption ="";

for(varj =0;j < res.length; j++)

{

option +="<option value=\""+ res[j].Value +"\">"+ res[j].Text +"</option>";

}

strVoucherGroupSelect = $(str).html(option).parent().html();

}

});

}

3 在页面中编写初始化代码

$().ready(function(){

getVoucherGroupData();

});

4 需要动态增加select的时候,可以这样写

$("#divID").append(genVoucherGroupSelect(rowID) );

5 给select增加点击事件,在第四步后增加

$("#sl_0"+ rowID).bind("change",function(){

alert("你点击了下拉框");

})