Javascript 敲除下拉选项渲染回调

Javascript 敲除下拉选项渲染回调,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我一直使用它,它要求对项调用一些js。现在,我用Knockout呈现我的select列表 这是用于在选定下拉列表中转换标准下拉列表的代码 $(dropdownSelectorOrElement).Chosen() 我需要知道Knockout何时完成了的渲染,以便调用上面的代码:可能的话,回调函数应该引用本身,这样我就可以在不使用选择器的情况下通过 Knockout公开了选项afterrender回调(有文档记录:请参见“注释2”),但是: 每次渲染选项时都会调用options afterre

我一直使用它,它要求对
项调用一些js。现在,我用Knockout呈现我的select列表

这是用于在选定下拉列表中转换标准下拉列表的代码

$(dropdownSelectorOrElement).Chosen()
我需要知道Knockout何时完成了
的渲染,以便调用上面的代码:可能的话,回调函数应该引用
本身,这样我就可以在不使用选择器的情况下通过

Knockout公开了
选项afterrender
回调(有文档记录:请参见“注释2”),但是:

  • 每次渲染选项时都会调用
    options afterrender

  • 选项AfterRender
    仅提供对选项元素的引用

我需要类似于
options afterrender
的东西,但只有在整个
完成渲染后才调用。击倒有这样的吗


我准备了一个示例,说明了我在上找到的自定义绑定解决的
选项AfterRender


请注意,如果您不使用
ko.unwrap
,更新功能将不会启动,因为有人告诉我有关此问题的问题。

还可以创建afterRender绑定:

ko.bindingHandlers.afterRender = {
    update: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
        allBindings.get('afterRender').call(viewModel, element);
    }
};
基于这一观点:

<select data-bind="
options: Options,
value: selection,
optionsText: 'text',
optionsValue: 'value',
afterRender: renderCallback
"></select>
<span data-bind="text: selection"></span>


我希望能有所帮助。

谢谢,这很有效,但不幸的是,并非总是如此。它取决于valueAccessor()可观察的绑定和订阅的顺序。这是不适用于knockout 3.4的,除非您已订阅回调或绑定中可观察的模型。
<select data-bind="
options: Options,
value: selection,
optionsText: 'text',
optionsValue: 'value',
afterRender: renderCallback
"></select>
<span data-bind="text: selection"></span>
function viewModel() {

    this.renderCallback = function (selectElement) {
        console.log('call');
    };

    this.Options = [{
        text: "abee",
        value: "123"
    } ...
};