我相信我的标题几乎解释了我希望实现的目标,我有一个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()。在我看来,这将改善用户体验。
这是可能的吗?
干杯!
答案 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())