gpt4 book ai didi

javascript - Backbone 动态创建 'el' 未绑定(bind)事件

转载 作者:行者123 更新时间:2023-11-30 08:12:24 26 4
gpt4 key购买 nike

像这里的许多其他用户一样,我对 el 有疑问和事件。在我的情况下,我测试了多种解决方案,包括使用默认的 el (只是 <div></div> )设置 tagName , 设置 el使用 jQuery 选择器并等待 DOM 准备就绪的选择器。这些解决方案中的每一个都无法绑定(bind)事件,除了默认的 eltagName生成 html 失败。相关代码:

查看

$ ->
class Aggregator.Views.Streams.StreamView extends Backbone.View
template:JST["backbone/templates/stream"]
el: $('.item')
events:
"click div" : "testing"
initialize: (model)->
console.log @el
_.bindAll this , 'render'
@model.bind 'change', @render
@model.view = @
@render()
@delegateEvents()
render: ->
$(@el).html "test"
console.log @el
@
testing: ->
alert "EVENT"
#@model.clear()

调用 View 的函数(从另一个 View 中提取)

view = new Aggregator.Views.Streams.StreamView({model: stream})
console.log view.el
$(@el).append view.render().el

我有点糊涂了,我设置了el但它要么不创建,要么不绑定(bind)事件。我试过等待 DOM 加载并传递 el给构造函数但没有成功。任何对我最有可能犯的明显错误的帮助将不胜感激。

最佳答案

抱歉,我对 coffeescript 不太满意,但我想我认出了您的事件哈希

events: {
"click div" : "testing"
}

我敢打赌,您正在尝试将此测试功能绑定(bind)到对您的常规 View 元素的点击?有问题。

您的点击事件实际执行的操作(选择器方面)是:

$('div', viewElement).click(fn);

意思是,您的目标不是 viewElement div,而是 div 在您的 View 元素中。

如果你想绑定(bind)到通用 View 元素本身,定义一个没有选择器的事件

在你的情况下:

events: {
"click" : "testing"
}

关于javascript - Backbone 动态创建 'el' 未绑定(bind)事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8452544/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com