0

我有一个 Backbone 应用程序,我在其中创建 2 个视图,一个可拖动,一个可放置。拖动工作正常,但永远不会触发 droppable 回调。如何让可放置视图“看到”可拖动视图?

我的“可丢弃”视图:

class App.Views.Folder extends Backbone.View

template: JST['folders/folder']

  className: "folder"

  initialize: (options) ->
    @collection.on('add', @addOne, @)
    @collection.on('reset', @addAll, @)

  render: ->
    @$el.html(@template(@model.toJSON()))
   this.$el.droppable(
      drop: -> alert("dropped!")
   );

可拖动:

class App.Views.QuestionSet extends Backbone.View

  template: JST['question_sets/question_set']

  className: "question-set"

  initialize: (options) ->
    @collection.on('add', @addOne, @)
    @collection.on('reset', @addAll, @)
    @$el.draggable(
      handle: ".drag-question-set"
      revert: true
    )

  render: ->
    @$el.html(@template(@model.toJSON()))

更新:

当我将可放置元素插入与$(draggable.el)可放置视图相同的容器潜水时,可放置元素正确触发回调。当他们在单独的html父母中时,它只是不喜欢它......

4

2 回答 2

0

您的帖子中没有太多信息,但根据您的描述,如果这取决于您在 html 中放置 droppable 的位置,您可以尝试用@$eljust 替换您的引用$("#someid")。另外,请记住,对于主干,快捷方式@$("#someid")的范围是主干视图元素(构造函数中设置的全局文档的某些子元素),而不是全局文档本身。假设您使$("#someid")零件正常工作,那很可能只是范围界定问题。

于 2012-07-05T08:57:56.283 回答
0

我想通了......原来这是 Droppable 插件的“容忍”问题。设置{tolerance: "pointer"}解决了我的问题。

于 2012-07-05T21:48:08.143 回答