3

我正在使用selected()来实现我的下拉框。

在我的主页中,我将下拉框设置为如下代码

//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] 未定义

在此处输入图像描述

为我的案例激活选择的正确方法是什么?

4

2 回答 2

3

我知道这已经很老了,但是我遇到了几乎相同的问题,解决问题的方法是等待调用插件,直到selectDOM.

于 2012-08-21T21:24:51.450 回答
1

Backbone 可能会render()在您的 DOM 准备好之前调用,同时chosen找不到您指定的元素。这是我的解决方案:

首先,在顶层的 coffee/js 文件末尾添加一个 DOM 就绪块。

$ ->
  $('.bookmark_questions select').chosen()

然后让 Backbone.View 告诉chosen在视图准备好时更新项目

render: ->
  @$el.trigger('liszt:updated')
于 2012-10-02T11:07:04.927 回答