列表项单击事件不起作用,但在 JSFIDDLE 中



我有这个小提琴,效果很好。因此,当我单击菜单中的列表项之一时,我会收到一条警报,告诉我单击了哪个项。

但是,在我的实际应用程序中,当我单击列表项时没有任何反应,对我来说,它看起来完全相同?


// get list of strategies
var $regions = $('#regionList');
$.ajax({
type: 'GET',
url: 'api/Region',
dataType: 'json',
success: function(codes) {
$.each(codes, function(i, code) {
$regions.append('<li id="' + code + '">' + code + '</li>');
});
},
error: function() {
alert("Error loading data! Please try again");
}
});
$("#regionList li").click(function() {
alert('Clicked ' + this.id);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<div class="dropdown">
<button class="dropbtn">Strategy</button>
<div class="dropdown-content">
<ul id="regionList"></ul>
</div>
</div>

Li元素是动态创建的。 因此,您附加侦听器的方式不适用于它们。 通过以下方式附加您的听众。它会起作用。

$(document).on('click',"#regionList li",function () {
alert('Clicked ' + this.id);
});

我会在 ajax 调用成功时绑定点击事件,否则您无法确定li是否存在

最新更新