我有一些动态数据被附加到列表中,并且该数据中的任何链接似乎都不起作用。
我正在使用jquery 1.8.3而on()
应考虑live
方法,我认为
setInterval(function () {
getNot();
}, 2000);
function getNot() {
var data = {
t1: 'test1',
t2: 'test2',
t3: 'test3'
};
var size = 0,
li = '';
$.each(data, function (k, v) {
li += '<li>' +
'<a href="#" class="add" data-listid="' + k + '">' +
'<h2>load data - ' + k + '</h2>' +
'</a>' +
'</li>';
size++;
});
var but = $('#not'),
ul = $('#not_ul');
but.find('span').text(size + ' Notifications');
ul.html(li);
ul.listview().listview("refresh");
}
// this doesn't seem to work
$('.add').on("click", function () {
var listId = $(this).data('listid');
console.log(listId);
return false;
});
关于这个问题的任何想法?
答案 0 :(得分:3)
$('.add').on("click", function () {
您需要传递选择器才能使on
生成委托事件:
$('#{containerId}').on("click", '.add', function () {
var listId = $(this).data('listid');
console.log(listId);
return false;
});
containerId
应该是动态创建的.add
元素中最接近的静态元素。