1

通过选择列表使用 jquery mobile 设置菜单样式。问题是,当我将 data-native-menu="false" 作为选项添加到标题时会引发错误。有效的代码片段是这样的:

var menu = '<div class="ui-select"><select name="menu-items" class="menu-items"  id="menu-items"  tabindex="-1" data-native-menu="false" >';
        menu += '<option value="a">A</option> <option value="b">A</option>';
        menu += '</select></div>'; 
$("div[data-role='header']", this.el).html(menu).trigger('create');

它产生的错误是这样的:

Uncaught TypeError: Cannot read property 'jQuery18303288714927621186' of undefined 

在下面的示例中,我删除了 data-native-menu 并且它会起作用但是 UI 看起来并不像预期的那样:

var menu = '<div class="ui-select"><select name="menu-items" class="menu-items"  id="menu-items"  tabindex="-1"  >';
        menu += '<option value="a">A</option> <option value="b">A</option>';
        menu += '</select></div>'; 
$("div[data-role='header']", this.el).html(menu).trigger('create');

什么可能导致这个问题?

4

1 回答 1

0

尝试这个:

<!DOCTYPE html> 
<html><head>
<meta charset="UTF-8">
<title>data-natice-menu</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile.structure-1.2.0.min.css" />
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
<script>
$(document).ready(function(e) { 
    var menu = '<div class="ui-select"><select name="menu-items" class="menu-items"  id="menu-items"  tabindex="-1" data-native-menu="false" >';
    menu += '<option value="a">A</option> <option value="b">A</option>';
    menu += '</select></div>'; 
    $("div[data-role='header']", this.el).html(menu).trigger('create');
});

</script>
</head>
<body>
<div data-role="page" data-theme="a" id="page">
    <div data-role="header" data-position="fixed"></div>
</div>
</body>
</html>

编辑:我更改了代码。我对其进行了测试,它正确显示了选择。

于 2013-01-09T17:09:30.220 回答