Javascript 为什么我的观点事件没有触发?
以下是我的咖啡脚本代码:Javascript 为什么我的观点事件没有触发?,javascript,backbone.js,coffeescript,Javascript,Backbone.js,Coffeescript,以下是我的咖啡脚本代码: $(document).ready -> SearchView = Backbone.View.extend tagName: "form" className: "search" events: { "click label":"search" } search: -> console.log("HERE") searchView = new SearchView() 这是我的HT
$(document).ready ->
SearchView = Backbone.View.extend
tagName: "form"
className: "search"
events: {
"click label":"search"
}
search: ->
console.log("HERE")
searchView = new SearchView()
这是我的HTML:
%form#search.search
%label
Search
%input
但单击表单不会触发任何事件。知道为什么吗?您误解了
标记名和类名的工作原理。设置这些参数时:
tagName: "form"
className: "search"
这只意味着您将拥有代码>在@el
中。这些设置不会将您的视图绑定到表单。搜索
选择器匹配的内容,您也不会将@el
添加到DOM中,这样您的事件就不会绑定到任何内容
如果要使用标记名
和类名
,则需要渲染
来充实表单:
render: ->
$(@el).append('<label>Search</label><input>')
@
演示:
如果要绑定到现有HTML,则可以使用el
而不是tagName
和className
如下所示:
searchView = new SearchView()
$('div').append(searchView.render().el) # 'div' is just an example of course
SearchView = Backbone.View.extend
el: '#search'
#...
演示: