【问题标题】:jQuery selectmenu not working with knockout.js when embedded inside a 'visible' binding嵌入“可见”绑定时,jQuery 选择菜单无法与 knockout.js 一起使用
【发布时间】:2011-12-20 09:20:10
【问题描述】:

我有一个演示问题的 jsfiddle:http://jsfiddle.net/michaelajohnsonwa/sDchM/7/

隐藏时从选择中生成的下拉元素似乎没有正确生成。我尝试使用“选项”绑定和自定义 jqOptions 绑定。我尝试将 .selectmenu('refresh') 添加到组合中,但结果没有区别。自定义绑定在模板绑定中使用时不起作用,我也觉得这很奇怪。

我不确定这是 jQuery selectmenu 还是 knockout.js 的问题。

--edit: 刚刚发现工作代码在 IE 中不起作用。 Chrome 和 Firefox 确实准确地证明了这个问题。

这里的任何帮助都将得到应用!谢谢!!

【问题讨论】:

    标签: javascript jquery-plugins knockout.js select-menu


    【解决方案1】:

    选择菜单插件在隐藏元素中不能正常工作,所以应该这样调用。

    if(obj.isVisible()) {
        $('#outterContainer').show();
        $('#broken2').selectmenu();
    } 
    

    编辑: 发生这种情况是因为隐藏元素的尺寸不正确。所以这可以通过给出选择元素的维度来解决。

    $('#broken2').selectmenu({width:"200px"});
    

    请看:http://jsfiddle.net/diode/sDchM/17/

    【讨论】:

    • 感谢二极管!!我已经用你的答案更新了 jsfiddle (jsfiddle.net/michaelajohnsonwa/sDchM/8)。我不能说我对答案很满意。我的意思是需要手动处理每个下拉菜单,当您考虑使用多个下拉菜单的多个步骤的向导时,您将失去声明性绑定到视图模型的优势。
    • 漂亮!!谢谢二极管!!你让我很开心!!很好的答案!
    猜你喜欢
    • 1970-01-01
    • 2012-09-04
    • 2013-04-12
    • 2014-04-16
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多