使用Backbone.js使用jQuery的fadeOut()查看remove()方法

时间:2013-05-15 16:23:11

标签: jquery backbone.js coffeescript

我相信我的标题几乎解释了我希望实现的目标,我有一个Backbone View,其中的事件通过view.remove()

自行删除

更确切地说:

class Project.Views.MemberView extends Backbone.View
  template: JST['members/member_view']

  events:
    'click .destroy-member': 'removeMember'

  initialize: ->
    _.bindAll(this, "render")

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

  removeMember: ->
    @model.destroy
      data:
        collective_id: gon.collective.id
      contentType: 'application/json'
      success: =>
        @remove() #view.remove() called here

view.remove()的调用效果很好,并且符合预期,但它会立即从DOM中删除元素(View),我认为这不是非常好的用户体验。 / p>

我需要知道的是,如果有办法换行,则使用Jquery fadeOut()调用view.remove()。在我看来,这将改善用户体验。

这是可能的吗?

干杯!

2 个答案:

答案 0 :(得分:1)

为什么不在删除之前调用fadeOut?我不熟悉coffeescript,但在你召唤模型破坏之前,只需做一些类似的事情:

removeMember: ->
    // whatever el you want to remove, just fade it out. from your code maybe its $(@el) ?:
    @model.destroy
      data:
        collective_id: gon.collective.id
      contentType: 'application/json'
      success: =>
        $(@el).fadeOut()

答案 1 :(得分:1)

fadeOut()有一个成功的回调 - 我建议你使用它来进行@remove()调用:

removeMember: ->
  @model.destroy
    data:
      collective_id: gon.collective.id
    contentType: 'application/json'
    success: =>
      $(@el).fadeOut(100, @remove())