簡體   English   中英

無法在加載了AJAX(jQuery)的元素上執行功能

[英]Unable to execute functions on elements loaded with AJAX (jQuery)

我使用.ajax()發布表單后,正在使用.prepend()加載數據。

一旦添加了新元素,我的功能將無法使用。

如果我直接將js文件鏈接到前置數據中,則該函數起作用,但是當我POST時,我開始乘以事件。

我有一種感覺,它與綁定有關,但是我無法弄清楚如何處理它。

有任何想法嗎?

謝謝!

創建一個封裝jEditable邏輯的函數,如下所示:

function initjEditable(){
    $('.review_edit').editable('edit_review.php', {
         indicator : 'Saving...',
         tooltip   : 'Click to edit...'
    });

    $('.review_edit_area').editable('edit_review.php', { 
         type      : 'textarea',
         cancel    : 'Cancel',
         submit    : 'OK',
         indicator : '<img src="/hrt/images/indicator.gif">',
         tooltip   : 'Click to edit...'
    });
}

然后從幾個地方調用該函數。 第一個方法是使其從blurbs鏈接的onclick .load語句進行回調,如下所示:

$('#adminContainer').load('blurbs.php',function(){ initjEditable(); });

這樣可以確保它不會在$(document).ready()函數中第一次運行。

第二個位置是您的.ajax調用的成功功能,用於添加blurb。 看起來像這樣:

$.ajax({
    type: 'POST',
    url: "add_review.php",
    data: $(this).parent().serialize(),
    dataType: "html",
    success: function(data){
        $("#results").prepend(data);
        initjEditable();
        $('#addForm').reset();
        $('#add').hide('fast');
    }
});

我認為您也需要在loadBlurbs函數啟動和運行時執行相同的操作。 這樣就可以使所有內容都通過可編輯插件運行,而無需重新加載腳本100次。

那時候我有意義嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM