按钮在函数调用上丢失格式

时间:2013-09-06 19:28:42

标签: jquery ajax jquery-mobile button format

在我的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();

        }
    });
});

因此,按钮被“重新加载”到不同的东西,但它丢失了格式并只显示了按钮文本

我该如何解决这个问题?

1 个答案:

答案 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值和缩减点击事件)