0
我想在jQuery Mobile的一些列表項的鏈接綁定到這個點擊功能的jsjQuery Mobile的現場()觸發太多次綁定()不會火DOM注射後
$(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);
});
}
是的,我知道這隻有在pageInit()中存在DOM時纔有效。如果我每次點擊它激發的列表項時嘗試使用live()函數,但會再次觸發先前的點擊次數。因此,我第一次點擊與類comment_link鏈接點擊功能的作品,但隨後的點擊將使其火災2倍,3倍,等等。
在文檔中說,我可以使用觸發器(「創建」)李item),然後bind()點擊函數應該選擇這些新的DOM元素,但是我仍然無法按照這種方式工作。 http://jquerymobile.com/test/docs/pages/page-scripting.html
生成列表視圖的函數如下所示,其中data是一個註釋數組,list是jquery listview選擇器。
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");
}
不知道我做錯了。有沒有不同的方式來重新綁定點擊事件處理程序?
似乎工作得很好。 – Brian 2012-03-14 11:54:19