我正在使用chosen()来实现我的下拉框。
在我的主页中,我按照以下代码设置下拉框
//Code in home template
.bookmark_questions
%select
%option{value: "xxxx"} xxxxxx
%option{value: "xxxx"} xxxxxx
%option{value: "xxxx"} xxxxxx
%option{value: "xxxx"} xxxxxx
//Code in home view
render: ->
$(@el).html @template()
@$('select').chosen()
@
在我的主视图中,我尝试按“@$('select').chosen()
”选择激活,但是当我尝试运行代码时,出现以下错误
this.search_field [0]未定义
根据我的情况选择激活的正确方法是什么?
答案 0 :(得分:3)
我知道这已经很老了,但我刚刚遇到了几乎相同的问题以及解决问题的原因是等待调用插件,直到select
附加到DOM
。< / p>
答案 1 :(得分:1)
Backbone可能会在您的DOM准备好之前调用render()
,同时chosen
无法找到您指定的元素。这是我的解决方案:
首先,在最高级别的coffee / js文件的末尾添加一个DOM ready块。
$ ->
$('.bookmark_questions select').chosen()
然后让Backbone.View告诉chosen
在视图准备就绪时更新项目
render: ->
@$el.trigger('liszt:updated')