【发布时间】:2014-12-27 02:39:02
【问题描述】:
我试图让.draggable() 对象的助手根据它在屏幕上的位置进行更改。为此,我使用了帮助程序的 set 函数,其值是从单独的模板生成的 HTML。通过使用console.log() 语句来查看帮助程序是什么,我可以看到 HTML 已适当更改(至少我相当确定),但帮助程序本身并没有在屏幕上更改。在某些情况下,这是 Backbone.js 视图中的 CoffeeScript。这是我的代码:
$('#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 不是空的,所以我看不到它。如果有人知道为什么这不起作用,我将不胜感激。谢谢。
【问题讨论】:
-
那不是 jquery 对象。您分享的只是纯文本。
-
@TJ 你能再帮我点忙吗?我已将 HTML 放入 jQuery 选择器中,所以我不太确定它只是纯文本。如果是,我将如何使它成为一个 jQuery 对象?谢谢。
-
你能分享一下重现你目前所拥有的东西所需的最少代码吗?或在线演示,例如jsfiddle
-
@TJ 给你:jsfiddle.net/peexa00m 我似乎很难在
over和out函数中放置多行,因此我省略了打印语句 - 我仍然CoffeeScript 很新,这就是原因。但我确实尝试了打印,发现正在创建的对象与我在原始帖子中指出的相同。
标签: jquery jquery-ui coffeescript draggable helper