2014-10-30 23 views
-1

我試圖讓.draggable()對象的助手根據它在屏幕上的位置而改變。要做到這一點,我使用了助手的set函數,其值是從單獨的模板生成的HTML。通過使用console.log()語句來查看幫助程序是什麼,我可以看到HTML已經適當地更改(至少我相當確定),但幫助程序本身不會在屏幕上更改。對於某些情況,這是Backbone.js視圖中的CoffeeScript。這裏是我的代碼:無法讓jQuery UI助手改變

$('#syllabus').droppable({ 
    scope: "components", 
    over: (event, ui) -> 
    $('#new_plaintext_button').draggable("option", "helper", $(JST["backbone/templates/components/box"]())) 
    out: -> 
    $('#new_plaintext_button').draggable("option", "helper", "clone") 
}) 

爲了澄清,助手開始了作爲一個克隆,當我將鼠標懸停在用正確的範圍對象,它應該改變從模板中的新的HTML對象。當我離開作用域時,它應該返回到克隆。下面是jQuery對象的助手之前,我改變它,後:

[i.fa.fa-3x.fa-file-text-o.ui-draggable.ui-draggable-handle.ui-draggable-dragging, prevObject: jQuery.fn.jQuery.init[1], context: i#new_plaintext_button.fa.fa-3x.fa-file-text-o.ui-draggable.ui-draggable-handle, constructor: function, init: function, selector: ""…] 
[div#component_box, prevObject: jQuery.fn.jQuery.init[1], context: document, constructor: function, init: function, selector: ""…] 

而作爲最後一點,我的風格與可見的特徵CSS這個新的div,所以我知道這是不是這樣的,我的DIV只是空的,所以我看不到它。如果任何人有任何想法,爲什麼這不起作用,我真的很感激。謝謝。

+0

這不是一個jQuery對象。你分享的只是純文本。 – 2014-10-31 17:23:57

+0

@TJ你可以試着幫助我多一點嗎?我將HTML放入了一個jQuery選擇器,所以我不太清楚它只是純文本。如果是這樣,我將如何去做它的jQuery對象?謝謝。 – 2014-11-05 04:31:56

+0

你可以分享到目前爲止所需的最小代碼嗎?或一個在線演示,如[jsfiddle](http://jsfiddle.net) – 2014-11-05 04:48:51

回答

0

我已經想出了我的問題的一部分。一個問題是,爲了更改幫助器,你必須傳遞一個函數作爲參數,而不是一個jQuery對象。另一個問題是,當幫助者被更改時,視圖不會更新,因此如果再次拖動.draggable對象,則只會看到更改。這爲我澄清了一些事情,但我仍然需要弄清楚如何讓新助手在原始拖動過程​​中出現。任何建議表示讚賞。