cof*_*ime 4 jquery coffeescript backbone.js
我最近开始使用Brunch和Backbone和CoffeeScript一起玩,并且想知道为什么会这样......
events: {
"click .button" : "open",
"hover .info" : "hover"
},
hover: =>
$(this).css("background-color", "#333")
Run Code Online (Sandbox Code Playgroud)
..不行.
根据我的理解,CoffeeScript有自己的版本this可能与jQuery使用的版本冲突但在文档中我认为=>它将它绑定到当前对象.我也尝试过->无济于事.为什么这不起作用的任何想法?
HTML:
<div id='outer'>
<div class='.info'> <a href='google.com'> google </a> </div>
<div class='.info'> <a href='google.com'> google </a> </div>
<div class='.info'> <a href='google.com'> google </a> </div>
</div>
Run Code Online (Sandbox Code Playgroud)
来自文档:
在传递给jQuery之前,所有附加的回调都绑定到视图,因此在调用回调时,
this继续引用视图对象.
如果this是视图对象(而不是HTML元素),$(this)则相当无意义.我相信,你想要做的是传递视图所指的元素$,例如:
hover: =>
$(this.el).css("background-color", "#333")
# -----^
Run Code Online (Sandbox Code Playgroud)
小智 5
乔丹的回答是正确的 - 如果你想让视图的元素使用this.el.
在您的情况下,您需要触发事件的元素,即.info元素.这可以通过event.currentTarget 1检索
hover: (e) =>
$(e.currentTarget).css("background-color", "#333")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4837 次 |
| 最近记录: |