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

来源:互联网 发布:知乎读书 书单 编辑:程序博客网 时间:2024/06/16 03:19

项目中需要在点击按钮时动态生成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("你点击了下拉框");
})
0 0