Jquery动态下拉事件未触发

时间:2010-04-22 11:24:35

标签: javascript jquery

您好我正在尝试动态创建下拉列表并通过ajax调用填充内容,这种工作在某种意义上说,下拉列表是根据需要创建和填充的,但它的“更改”事件不会触发。我发布下面的代码,如果有人能发现明显的东西,请你告诉我 问候

$(document).ready(function () {

 $("#positions select").change(function (e) {
    alert("in");
    var id = $("#category_id").val();
    $.getJSON("/Category/GetSubCategories/" + id, function (data) {
    if (data.length > 0) {

        alert(data.length);
        var position = document.getElementById('positions');
        var tr = position.insertRow(7);
        var td1 = tr.insertCell(-1);
        var td = tr.insertCell(-1);
        var sel = document.createElement("select");
        sel.name = 'sel';
        sel.id = 'sel';
        sel.setAttribute('class', 'category');

        td.appendChild(sel);
        $.each(data, function (GetSubCatergories, category) {
        $('#sel').append($("<option></option>").
       attr("value", category.category_id).
      text(category.name));

        });
    }
    });
    });
 }); 

1 个答案:

答案 0 :(得分:3)

如果您的下拉列表是动态生成的,那么您必须使用 .live() 处理程序绑定更改事件。 live()为当前或未来与当前选择器匹配的所有元素附加事件的处理程序。

$("positions select").live("change", function(){
});

<强> 修改

获取ID

$(this).attr("id");

获得价值

$(this).val();

获取课程名称

$(this).attr("class");

在更改事件处理程序中。