2013-08-28 93 views
0

我堅持一些基於jQuery的庫,它迫使我添加屬性到我的標記中的很多元素,以便它「不顯眼地」做一些AJAX爲我發佈了表單,好像他們還沒有查看字典來閱讀「不顯眼」的實際意思。動態地添加屬性到基於jQuery中的選擇器的元素

在試圖從外部戳所述庫以改變它正在使用的選擇器後,我放棄了這一點,現在正試圖使用​​jQuery來添加屬性,以便我可以使它實際上不顯眼。

如果我這樣做:

$('form.filter, .pagination a, .sortable a').attr('data-remote', true); 

這修復的每一個元素在執行的時間。問題在於AJAX查詢替換了那些包含更多元素的頁面部分,這些元素應該添加屬性。所以我發現第一次點擊是有效的,但第二次加載頁面時沒有使用AJAX,此時循環重複執行,因爲整個文檔已經被重新加載。

我隱約莫不是on()是這樣的事情,但我已經嘗試使用它,沒有人還沒有發射的多種方式(我有一個alert在那裏,這樣我就發現當它。)

這樣做的正確方法是什麼?

+3

你可以嘗試使用'$(文件).ajaxSuccess(函數(){//你的代碼在這裏})說,'這樣,對於每次AJAX調用成功時都調用? – Floris

+0

on()不是您在這裏查找的內容,您需要在加載新元素時將這些屬性添加到 –

+1

我們可以有一個小提琴看嗎? –

回答

2

最好的辦法是找到表單發佈的成功回調,並在其中包含屬性分配。您也可以使用全局AJAX成功回調爲弗洛里斯已經加入

$(document).ajaxSuccess(function() { 
    $('form.filter, .pagination a, .sortable a').attr('data-remote', true); 
}); 
+0

我認爲在請求的成功處理程序之前調用'ajaxSuccess'。 –

+0

我也懷疑時機。雖然,它似乎工作,從最初的測試只... – Trejkaz

+0

我相信本地成功回調總是在全局之前調用,但有一些信息在http://stackoverflow.com/questions/5481389/jquery- Ajax的事件調用順序 – DGS