1

这是一个用cordova制作的android应用程序。该表格有多个选择框。当点击选择框时,选项以原生Android风格显示,但闪烁。当您选择选项时,选项将消失,并且选项框上的文本不会更新。没有被选中。它适用于第二次尝试。选择框被触摸时显示两次的选项

每隔一秒尝试从选择框中选择选项都按预期工作。有趣的是,它不一定是相同的选择框。在任何选择框上的每次尝试都允许选择该选项。

使用jquery mobile 1.4.5和jquery 2.2.3。 它工作正常使用jQuery移动1.3.2

EDIT1

的Android 6.0.1

当加载页面时,每个选择框的功能运行填充选项:

其中被定义选择框
function populateLocationOptions() { 
    $("#addLocation option").each(function() { 
    if ($(this).val() != 'Option') { 
     $(this).remove(); 
    } 
    }); 

    var locations = getLocationArray(); 

    for (var i = 0; i < locations.length; i++) { 
    sLocationOption = "<option value=\"" + locations[i].id + "\">" + locations[i].name + "</option>"; 
    $("#addLocation").append(sLocationOption);  
    } 
    $("#addLocation").selectmenu('refresh', true); 
} 

HTML部分:

<label for="addLocation" class="select"></label> 
<select name="Location" id="addLocation" data-theme="c" > 
    <option value="Option" data-i18n="addpage.location">Select Location</option> 
</select> 

EDIT2适当采用Android 5.1.1

EDIT3

小例子,重现于Android 6.0.1和6.0.0科尔多瓦问题

作品。这是index.htmlcordova create

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *"> 
<meta name="format-detection" content="telephone=no"> 
<meta name="msapplication-tap-highlight" content="no"> 
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width"> 
<link rel="stylesheet" type="text/css" href="css/index.css"> 
<link rel="stylesheet" type="text/css" href="css/jquery.mobile-1.4.5.min.css"/> 
<script src="js/jquery/jquery-2.2.3.min.js"></script> 
<script type="text/javascript" charset="utf-8" src="js/jquery/jquery.mobile-1.4.5.min.js"></script> 

<title>Hello World</title> 
</head> 
<body> 
<div data-role="page" id="add"> 
    <div data-role="header"> 
    <h1 id="addPageHeader" data-i18n="addpage.header">Flicker example</h1> 
    </div> 
    <div data-role="content"> 
    <select name="Time" id="selectTime" data-theme="c"> 
     <option value="Option">city</option> 
     <option value="Option">Paris</option> 
     <option value="Option">New york</option> 
     <option value="Option">London</option> 
     <option value="Option">Madrid</option> 
    </select> 
    </div> 
    <div data-role="footer" data-position="fixed" data-tap-toggle="false" data-id="footer"> 
    <div data-role="navbar"> 
     <ul> 
     <li><a href="#diary" data-transition="none" data-icon="bars">List</a></li> 
     <li><a href="#add" data-transition="none" data-icon="plus">Add</a></li> 
     <li><a href="#settings" data-transition="none" data-icon="gear">Settings</a></li> 
     </ul> 
    </div> 
    </div> 
</div> 
<script type="text/javascript" src="cordova.js"></script> 
<script type="text/javascript" src="js/index.js"></script> 
</body> 
</html> 

由香草锅炉板出乎意料的是,当data-position="fixed"属性从footer DIV删除问题消失。

+0

请分享一些代码,正在使用的android版本和其他您认为相关的细节。 – LoreV

回答

0

我没有设法使用data-position="fixed"解决这个问题。我删除了该属性,并使用自定义CSS来实现相同的效果。这是一个在jquery mobile支持data-position属性之前使用的调整解决方案。下面列出的CSS文件在jquery mobile css之后加载。

body, 
.ui-page { 
     min-height: 100% !important; 
      height: auto !important; 
     } 
.ui-content 
{ 
    margin-bottom: 56px; /* footer size */ 
} 

.ui-footer { 
    position: fixed; 
    bottom: 0; 
    width: 100%; 
} 

我的直觉是,这是jquery mobile无法正常使用Android 6.x的webview。

0

我在android 5.0.1上测试时遇到这个问题。

在大多数情况下把这个文件上准备好解决了这个问题:

$("select").on('vmousedown', function(e) { $(this).focus().click(); }); 

我发现这个问题仍然存在飘飞,有时如果你非常迅速关闭和打开选择窗口。