您好,我正在尝试动态创建下拉列表并通过 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/