在视图的事件属性中使用backbone.js监听相对于@el的事件
我这样写我的视图:
class Remobs.Views.Element extends Backbone.View
template: JST['elements/element']
events:
'element_rended': 'initImagesDatas'
'click img.element_image' : 'observeImageEvents'
'click .more': 'addToBag'
'click .less': 'decreaseNumber'
tagName : 'li'
render: ->
$(@el).html(@template(element: @model))
@currentImage = $(@el).find('img')
@craftBox = null
$(@el).trigger('element_rended')
this
我想在事件数组中添加一个元素,如下所示:
events:
'click @el.find('img')' : 'myfunction'
我能做到吗?我怎样才能做到这一点?我正在使用 jQuery。
I write my view like this :
class Remobs.Views.Element extends Backbone.View
template: JST['elements/element']
events:
'element_rended': 'initImagesDatas'
'click img.element_image' : 'observeImageEvents'
'click .more': 'addToBag'
'click .less': 'decreaseNumber'
tagName : 'li'
render: ->
$(@el).html(@template(element: @model))
@currentImage = $(@el).find('img')
@craftBox = null
$(@el).trigger('element_rended')
this
And i want to add an element in the events array like this :
events:
'click @el.find('img')' : 'myfunction'
Am I able to do that? And how can i do that? I am using jQuery.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你不能做
'click @el.find('img')'
但 'click img' 相当于你想做的 - 所以它更简单:)它的工作方式是它将第一个空格之前的第一个单词作为事件类型,之后的所有内容都将转换为 jQuery 选择器。如果您仅传递一个没有选择器的事件名称,则事件将绑定到
@el
如果您传递一个选择器字符串,它将将该事件委托给@el.findselector_string
you can't do
'click @el.find('img')'
but 'click img' is an equivalent of what you want to do - so it's much simpler :)the way it works is that it takes the first word before first space as a event type and everything after that is turned into a jQuery selector. If you pass just an event name without a selector, event will be bound to
@el
if you pass a selector string it will delegate the event to@el.find selector_string