使用 jQM 1.4,我正在使用自定义select
小部件,[data-role='toggleselect']
如下所示:
<select data-role="toggleselect">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
为此,我需要select
不增强我的元素。根据我在 jQM 1.4 API 中阅读并理解的内容,我应该能够使用以下内容来防止我select
被主要mobile.selectmenu
小部件增强:
$( document ).on( "mobileinit", function() {
$.mobile.selectmenu.prototype.initSelector += ":not(:jqmData(role='toggleselect'))";
});
这是我的jsfiddle表明这不起作用。我的select
元素还在增强中。是的,这是在加载 jQuery 之后但在 jQM 之前放置的。
为了进一步实验,我将以下 initSelector 硬编码到小部件下的 jQM-1.4.js 文件中mobile.selectmenu
:
initSelector: "select:not(:jqmData(role='slider')):not(:jqmData(role='flipswitch')):not(:jqmData(role='toggleselect'))"
当这是硬编码时,我select
的不会增强,因此可以按预期工作。
以下是我的文件的副本/粘贴:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>mobile.toggleselect</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.0/jquery.mobile-1.4.0.min.css" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
$( document ).on( "mobileinit", function() {
$.mobile.selectmenu.prototype.initSelector += ":not(:jqmData(role='toggleselect'))";
});
</script>
<script src="http://code.jquery.com/mobile/1.4.0/jquery.mobile-1.4.0.min.js"></script>
</head>
<body>
<div data-role="page">
<div data-role="header">
<h3>mobile.toggleselect</h3>
</div>
<div data-role="content">
<select data-role="toggleselect">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</div>
</div>
</body>
</html>
同样,如果我下载文件的本地副本并对for 进行jquery.mobile-1.4.0.js
硬编码,它会按预期工作。initSelector
mobile.selectmenu
所以......我错过了什么?或者这是一个错误?