【问题标题】:backbone.js hover on root dom doesn't work主干.js 悬停在根 dom 上不起作用
【发布时间】:2011-09-24 02:02:38
【问题描述】:

为什么根 dom 上的悬停事件绑定不起作用?虽然默认情况下,我可以将 <div class="activity span"></div> 放在模板周围,并在外面使用包装器 <div></div>,但这很糟糕。
请帮忙~thx

ActivityView = Backbone.View.extend(
    className: "activity span"
    events: {
        "hover" : "toggleSidebarTrigger"   // doesn't work..
        "hover img" : "foo"                // works
        "click" : "bar"                    // works
    }
    template: _.template($("#activity-item-template").html())
    initialize: ->
        this.model.bind("change", this.render, this)
        this.render()
    render: ->
        $(this.el).html(this.template(this.model.toJSON()))
    toggleSidebarTrigger: ->
        this.$(".sidebar-trigger").toggle()

)


  <script id="activity-item-template" type="text/template">
      <img src="{{ photo.url_m }}" class="activity-media" alt="" />
      <a href="#toggle-sidebar" class="sidebar-trigger"><%= image_tag "plus_69x69.png" %></a>
  </script>

【问题讨论】:

  • 能把代码放到jsfiddle.net上分享一下吗?
  • 它在任何浏览器中都不起作用?它会抛出错误吗?请提供更多详细信息。

标签: javascript backbone.js coffeescript


【解决方案1】:
ActivityView = Backbone.View.extend(
    className: "activity span"
    events: {
        "hover" : "toggleSidebarTrigger"   // doesn't work..
        "hover img" : "foo"                // works
        "click" : "bar"                    // works
    }
    template: _.template($("#activity-item-template").html())
    initialize: ->
        this.model.bind("change", this.render, this)
        this.render()
    render: ->
        $(this.el).html(this.template(this.model.toJSON()))
    toggleSidebarTrigger: ->
        $(".sidebar-trigger", this.el).toggle()

)

试试这个..

【讨论】:

  • 我想试试这个,但不是this.$(selector) == $(selector, this.el)
猜你喜欢
  • 2023-04-02
  • 2019-09-14
  • 1970-01-01
  • 2017-06-02
  • 2016-06-04
  • 1970-01-01
  • 2016-08-26
  • 2013-06-20
  • 1970-01-01
相关资源
最近更新 更多