2

私の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();

        }
    });
});

したがって、ボタンは別のものに「再ロード」されますが、書式設定が失われ、ボタンのテキストのみが表示されます

どうすればこれを修正できますか?

4

1 に答える 1

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た値とカットダウン クリック イベントを使用しています)

于 2013-09-06T19:33:26.153 に答える