2013-05-31 35 views
0

最後一行Firebug拋出錯誤。我猜這是一個語法問題?我基本上從這個tutorial複製,看不出爲什麼它不起作用。JQuery UI:ui.draggable不是函數

TypeError: ui.draggable is not a function 
[Break On This Error] 
ui.draggable({ containment: 'body'}); 

代碼:

function handleDropbox(event, ui) { 
     $(this).append(ui.draggable); // put this first!!! 
     ui.draggable.addClass('selected'); 
     $(this).droppable('disable'); 
     ui.draggable.position({ of: $(this), my: 'center center', at: 'center center' }); 
     ui.draggable.draggable('option', 'revert', false); 
     ui.draggable({ containment: 'parent'}); 
    } 
+0

有沒有新增jquery.js和jquery-ui.js?如果添加可以檢查是否加載 – DDK

+0

嘗試添加「(jQuery);」後}); – SamDroid

+0

如果'ui'不是jQuery對象,則需要使用'$(ui)'。所以這取決於你如何將'ui'參數傳遞給'handleDropbox'。 –

回答

1

ui.draggable確實在這裏不是一個函數;它是一個jQuery對象(應用了draggable小部件)。也許你正在尋找這樣的:其實

ui.draggable.draggable('option', {containment: 'body'}); 

,它可能是有意義的這一說法與前一個組合:

ui.draggable.draggable('option', {revert: false, containment: 'body'}); 

...你可以在通過多個選項對象的形式。

+0

所以'ui.draggable'是被拖動的對象,而'ui.draggable.draggable()'是一個需要很多參數的函數? – Philip007

+0

是的,這是一個通用的輔助方法,用於調整/設置小部件本身。這是jQuery UI中的一種常見模式。 – raina77ow

+0

爲什麼jQuery的語法如此混亂?是僅僅是我還是爲了很多人?我來自ObjC背景。有什麼建議? – Philip007