javascript - Jquery 动态下拉事件未触发

标签 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));

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

最佳答案

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

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

编辑

获取id

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

获取值(value)

$(this).val();

获取类名

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

在更改事件处理程序中。

关于javascript - Jquery 动态下拉事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2690289/

相关文章:

javascript - 如何创建属性?

jquery 使用 attr 更改可见性不起作用

jquery - IE jquery 异步文件上传请求挂起

javascript - 根据其中的文本设置大小内容可编辑的 div

php - 从列表中选择/查看一行

javascript - 框架集共享一个JavaScript库

javascript - Angular.js 通过单击元素以外的任何地方关闭

javascript - 如何选择不包含 anchor 的元素?

javascript - Angular .js : $sanitize fails on $injector:modulerr using exact code example from angular site

javascript - 如何获取在 Javascript 中单击的文本?