2011-03-07 39 views
0

首先我有一個排序容器class="viewport",然後我想顯示每個孩子的ID後排序,所以代碼:jQuery UI可排序({stop:function(){}})導致錯誤 - this.helper爲空

$(".viewport").sortable({ 
        connectWith: '.viewport', 
        revert: true, 
        stop: function() { 
          $sort_left_array=$(this).children(); 
          $sort_left_arry.each(function(){ 
           alert($(this).attr("id")); 
          }); 
        } 
       }); 

但經過排序後,在螢火蟲中,它警告「this.helper爲空」,警報功能不起作用,並且該頁面的所有動畫都不起作用。

順便說一下,當頁面加載時,頁面頭部的$(function(){})部分中的可排序容器中的項目加載了ajax,這有什麼關係?

有沒有人有這個問題?我怎麼解決這個問題?

回答

1

有一個在你的問題的代碼一個錯字:

$sort_left_array=$(this).children(); 
$sort_left_arry.each(function(){ 
    alert($(this).attr("id")); 
}); 

$sort_left_array != $sort_left_arry。此外,除非您在代碼中的其他地方聲明瞭var $sort_left_array,否則stop回調中缺少var關鍵字。

+0

+1,argh打我吧! – 2011-03-07 02:38:15

+0

不,不,不,我甚至把「var」加到「var $ sort_left_array」結果是一樣的 – hh54188 2011-03-07 02:46:10

+0

@ hh54188:你把'$ sort_left_arry'改成'$ sort_left_array'了嗎?另外,你說這些項目是使用ajax加載的。你確定**在內容加載後運行'sortable()'調用嗎?您需要將'sortable()'調用放入ajax加載處理程序中,或者使用'setTimeout()'或'setInterval()'輪詢DOM以確保內容存在。如果您可以顯示更多相關代碼和/或發佈演示問題的http://jsfiddle.net,將會有所幫助。 – 2011-03-07 04:13:45