我在我的網頁上有一個列表(ul li),它被轉換爲jQuery的可排序列表。這一切工作正常,直到我加載列表在Ajax對話框中。然後,該列表失去其可排序的功能。由於Ajax,jQuery排序未加載
有沒有什麼辦法重新初始化可排序列表並保留所有綁定到它的事件(如update
)?
我想:$('#sortable').sortable('refresh');
但是,這並沒有爲我工作。
任何想法?
我在我的網頁上有一個列表(ul li),它被轉換爲jQuery的可排序列表。這一切工作正常,直到我加載列表在Ajax對話框中。然後,該列表失去其可排序的功能。由於Ajax,jQuery排序未加載
有沒有什麼辦法重新初始化可排序列表並保留所有綁定到它的事件(如update
)?
我想:$('#sortable').sortable('refresh');
但是,這並沒有爲我工作。
任何想法?
它更像這樣:http://jsfiddle.net/un5ft/2/ ---整個列表被加載到ajax請求中。然後它失去它的功能 – Vivendi 2012-08-03 13:12:56
你能修復例子嗎?在不存在的div上使用'.sortable()'。您也可以附加具有相同ID的div。 – Temp 2012-08-03 13:24:15
這就是整個問題。我有一個這樣的代碼片段(我在'general.js'中加載'sortable()'),它總是加載到我的html頭部標籤中。因爲一些沒有被Ajax加載的頁面也有'#sortable'列表。現在在某個頁面上,我的列表被Ajax加載。所以你是對的。起初,Div ID不存在,就像在這個例子中一樣。但是我想知道是否有一種方法可以在Ajax內容加載後「重新綁定」它。 – Vivendi 2012-08-03 13:31:19
在您的ajax方法的回調中再次重新綁定sortable()
方法。
例如
$("#someDiv").load("getitems.php",function(){
$("#sortableList").sortable();
});
入住這撥弄它爲我工作的排序和內容的注入就像你的榜樣。
問題是,整個列表是在ajax請求中加載的。然後它失去了它的功能。查看jsfiddle.net/un5ft/2 – Vivendi 2012-08-03 19:35:45
你可以做這樣的事情http://jsfiddle.net/un5ft/13/或做什麼Shyju建議使用'上' – 2012-08-04 15:02:45
或vell爲此事太建議使用on函數。 – 2012-08-05 09:27:15
你能告訴你的代碼,甚至更好加載在的jsfiddle好嗎? – 2012-08-03 12:47:06
@Monkieboy這對於通過ajax加載的內容來說有點困難......這不是一件容易的事,就像一個html元素一樣,表現得很怪異。這是在通過Ajax加載某些內容時發生的常見問題。它失去了JavaScript的功能。我只是沒有看到任何解決方案爲我工作。 – Vivendi 2012-08-03 12:55:12
好的,即使沒有AJAX部分,是否可以獲得更多的代碼,以便您的問題可以被複制? – 2012-08-03 12:57:34