在我的jquery代码中,按钮基于ajax调用和json数据附加到页面上,如此
function appendButton() {
$('#list').append('<div class="ui-block-a"><a class="request" data-role="button" data-id=\"'+json[i].num+'\" data-type="1" data-icon="plus" data-iconpos="right">Pro</a></div>');
}
单击按钮时,我会回想起ajax功能(上面显示的重要部分)
$(document).on('click', '.request', function() {
var type = $(this).data('type');
var id = $(this).data('id');
$.ajax({
url: 'someurl',
crossDomain: true,
type: 'post',
data: {
"type" : type,
"num" : debateID,
"userID": userID
},
success: function (data) {
appendButton();
}
});
});
因此,按钮被“重新加载”到不同的东西,但它丢失了格式并只显示了按钮文本
我该如何解决这个问题?
答案 0 :(得分:2)
您应该在新添加的元素上触发create
事件,如下所示:
function appendButton() {
$('#list').append('<div class="ui-block-a"><a class="request" data-role="button" data-id="'+json[i].num+'" data-type="1" data-icon="plus" data-iconpos="right">Pro</a></div>').trigger('create');
}
此处有效:http://jsfiddle.net/BYLbM/(我在我的示例中使用了硬编码的data-id
值和缩减点击事件)