-1

我有一个由 ajax 附加的选择列表(#searchHistory):

var toAppend = '<option rel="' + relval + '">' + eVal + '</option>';
$("#searchHistory").append(toAppend);  

并且为选择框注册了一个点击事件

 $('#searchHistory option').click( function() {
    var shOpt = $(this);
    var relVal = shOpt.attr('rel');

    alert(relVal);
});

我的问题是选择框的最后一项不会触发点击事件!!!!单击时所有其他项目都在工作。有趣的是,当我在 APPEND 上使用 PREPEND 时,第一个项目不会触发点击事件,而所有其他项目都可以工作。请注意,选择框由上面的 ajax 代码填充。这意味着,如果我将另一个添加到列表框中,则以前的非工作项目运行良好,但最近添加的项目仍然无法运行。

有什么想法吗???谢谢

4

2 回答 2

2

尝试

$('#searchHistory').change( function() {
    var shOpt = $(this).find('option:selected');
    var relVal = shOpt.attr('rel');

    alert(relVal);
});
于 2013-09-09T10:22:49.157 回答
1

附加项目通常不会触发事件,因此您需要使用“on”方法尝试:

 $(function(){
$('body').on("change","#searchHistory", function() {
var shOpt = $(this);
var relVal = shOpt.attr('rel');

alert(relVal);

}); })

jQuery“开启”

于 2013-09-09T10:26:33.057 回答