Javascript 选择显示多次的菜单
我有一个选择HTML控件,如下所示: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)
<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);
我尝试了你的代码,它仍然创建了两个选择列表,因为你也调用了两次。