Я пытаюсь связать некоторые ссылки на элементы списка в jquery mobile с функцией щелчка с помощью этого js
$(document).bind('pageinit', function(event){
$('a.comment_link').bind("click",function() {
var comment_id = $(this).attr('comment_id');
window.localStorage.setItem("comment_id",comment_id);
});
}
Да, я знаю, что это будет работать, только если DOM присутствует в pageInit (). Если я пытаюсь использовать функцию live () вместо этого, каждый раз, когда я нажимаю на элемент списка, он запускается, но затем запускается снова для того, сколько кликов было сделано ранее. Поэтому, когда я в первый раз щелкаю ссылку с классом comment_link, функция щелчка срабатывает, но при последующих щелчках она срабатывает 2x, 3x и т. Д.
В документах написано, что я могу использовать триггер ("создать") для элемента li в просмотре списка, а затем функция щелчка bind () должна подхватить эти новые элементы DOM, но я до сих пор не могу получить его работать таким образом. http://jquerymobile.com/test/docs/pages/page-scripting.html
Функция, генерирующая представления списка, выглядит следующим образом, где data - массив комментариев, а list - селектор просмотра jquery.
function generateComments(data,list){
list.html("");
$.each(data, function(key, comment) {
var img;
if(comment.user.icon){
img = '<div class="icon_wrapper"><img src="http://stage.domain.com/assets/img/user/'+comment.user.icon+'"/></div>';
}
else{
img = '';
}
var prettyTime = humaneDate(comment.created_at)
var item = '<li class="blank"><a href="userprofile.html" class="comment_link" type="'+data.type+'" user_id="'+comment.user.user_id+'" id="'+comment.id+'">'+img+'<h4>'+comment.user.name+'</h4><p>'+comment.data+'</p><div class="stamp_wrapper"><p class="ui-li-aside">'+prettyTime+'</p></div></a></li>';
list.append(item).trigger('create');
});
list.listview("refresh");
}
Не уверен, что я делаю не так. Есть ли другой способ перепривязать обработчик события щелчка?