如何为我的下拉框激活selected()

时间:2012-05-20 07:46:21

标签: jquery backbone.js drop-down-menu haml jquery-chosen

我正在使用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]未定义

enter image description here

根据我的情况选择激活的正确方法是什么?

2 个答案:

答案 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')