无法获取jQuery-ui selectmenu进行渲染

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法获取jQuery-ui selectmenu进行渲染相关的知识,希望对你有一定的参考价值。

我正在使用javascript动态创建一个选择菜单,但我无法在屏幕上看到它。我不确定我错过了什么。

我正在使用jQuery 2.2.4和jQuery-ui 1.11.4

这是我的javascript:

var input = document.createElement('select');

for(var i = 0; i < settingOptions.length; i++) 
{ 
    var optionValue = new String(settingOptions[i]);

    var option = document.createElement('option');
    option.setAttribute('value', optionValue);
    option.innerText = optionValue;

    if(optionValue.valueOf() === settingValue.valueOf())
    {
        $(option).prop('selected', true);
    }

    input.appendChild(option);
}

$(function(){
    $(input).selectmenu();
});

不使用jQuery渲染时,菜单正在创建;当我不调用.selectmenu()作为标准html选择时,我可以看到菜单。

此外,select元素位于DOM中,但会自动赋予CSS属性“display:none”。使用Chrom Developer Tools切换该属性时,我看到了标准的HTML选择。

我试图使用匿名函数调用.selectmenu(),以及document.ready,但没有成功

$(document).ready({
    $(input).selectmenu();
}

当我在Chrome控制台中评估操作时,我的选择器似乎正在工作,因为我正在获取jQuery对象。

有任何想法吗?

TLDR回答:我在将我的selectmenu的父元素附加到DOM之前调用了.selectmenu(),在我添加了这个元素之后调用它。

答案

必须将select元素(变量named输入)添加到DOM:

document.body.appendChild(input); 

工作小提琴:https://jsfiddle.net/beaver71/n4rvo8qy/

以上是关于无法获取jQuery-ui selectmenu进行渲染的主要内容,如果未能解决你的问题,请参考以下文章

单击滑块轨道时获取 Jquery-UI 滑块值?

如果选项卡未处于活动状态,jqgrid 无法在 jquery-ui 选项卡下正确加载

无法让 jQuery-ui 选择菜单呈现

jQuery-UI - “无法读取未定义的属性‘步骤’”

jquery-ui.js:8056 未捕获类型错误:无法读取未定义的属性“左侧”

错误 jquery-ui 可拖动无法读取属性“msie”