0

admin.jsと呼ばれるCMSのすべてのページで実行されるコードを含むjsファイル(ページヘッダーで呼び出されます)があります。これには、jQueryファイルアップロードプラグインを使用してファイルアップロードを処理するためのコードが含まれています。

CMSでウィジェットシステムを構築しています。ブートストラップモーダルを使用します。ファイルアップロードフォームをモーダルに配置すると、ファイルアップロードは正常に機能しますが、モーダルにajaxを使用してフォームをロードすると、ファイルアップロードプラグインが起動しません。

モーダルとajaxのコードは次のようなものです。

$('#widget').on('show', function (event) {
    var page_id = $('#widget').data('modal').options.page_id;
    var widget_id = $('#widget').data('modal').options.widget_id;
    $.ajax({
        url: ADMIN_INCLUDES_URL + 'widget/widget.php',
        dataType: 'html',
        type: 'POST',
        async: false,
        data: {
            'page_id': page_id,
            'widget_id': widget_id,
            'action': 'form'
        },
        success: function(r){
            $('#widget').html(r);
        }
    });
});

ファイルアップロードのjsコードを複製したくありません。.on()を使用していて、.live()も試しましたが、どちらも機能しませんか?

4

1 に答える 1

0

これを試してください。ajax呼び出しの前に存在するコンテナを使用し、動的要素をそれにバインドする必要があります

例 - これは、クリック イベントを現在および将来の #widget の子である任意の .click 要素にバインドします。

$('#widget').on('click', '.click', function(){ console.log('clicked');});
于 2012-09-18T10:44:51.073 に答える