Javascript 选择显示多次的菜单

Javascript 选择显示多次的菜单,javascript,jquery,jquery-mobile,knockout.js,Javascript,Jquery,Jquery Mobile,Knockout.js,我有一个选择HTML控件,如下所示: <select name="width-dimension-inches" id="width-dimension-inches" data-bind="value: widthWhole,jqmSelectMenuRefresh :true, options: widthDimension.dimension.getDimensionsWhole()"> </select> init: function(element)

我有一个选择HTML控件,如下所示:

 <select name="width-dimension-inches" id="width-dimension-inches"  data-bind="value: widthWhole,jqmSelectMenuRefresh :true, options: widthDimension.dimension.getDimensionsWhole()">

</select>
  init: function(element) {

            $(element).selectmenu('refresh',true);
当我运行上述代码时,我得到两个SelectMenu,如下所示:

define(["jquery", "knockout", "jqueryMobile"], function ($, ko) {
    ko.bindingHandlers.jqmSelectMenuRefresh = {

        init: function(element) {

            $(element).selectmenu().selectmenu('refresh', true);

        },

我能做些什么来解决这个问题

更新1:

如果我将代码更新为以下内容:

 <select name="width-dimension-inches" id="width-dimension-inches"  data-bind="value: widthWhole,jqmSelectMenuRefresh :true, options: widthDimension.dimension.getDimensionsWhole()">

</select>
  init: function(element) {

            $(element).selectmenu('refresh',true);
然后我得到以下错误消息:

Uncaught Error: cannot call methods on selectmenu prior to initialization; attempted to call method 'refresh' 

每次调用
selectmenu()
函数时,都会创建新实例

$(element).selectmenu().selectmenu('refresh', true);
上面的代码行将创建两个实例,其结果是两个可见元素

我的建议是初始化插件,将实例存储在变量中,然后在此对象上调用函数:

var $instance = $(element).selectmenu();
$instance.selectmenu('refresh', true);

我尝试了你的代码,它仍然创建了两个选择列表,因为你也调用了两次。