【发布时间】:2014-04-28 15:07:40
【问题描述】:
我想即时创建 JQM 小部件/组件。所以我创建了一个自定义函数来创建它。 请检查以下代码:
<!DOCTYPE html>
<html>
<head>
<title>JQM 1.4.2</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css" />
</head>
<body>
<div data-role="page" id="one">
<div data-role="content">
<div id="checkboxComponent"></div>
<div id="radioComponent"></div>
</div>
</div>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>
<script>
var checkBoxArray = ["Car","Bike","Land"];
var radioBtnArray = ["Car","Bike","Land","House","Farm"];
function createComponent(type, element, data) {
$("#"+element).html('<div data-role="controlgroup" class="controlGruopDiv"></div>');
for(var i=0; i<data.length; i++){
$(".controlGruopDiv").append('<input type="' + type + '" name="' + type + '" id="' + type + i + '"><label for="' + type + i + '">' + data[i] + '</label>');
};
$("#"+element).trigger('create');
};
$(document).on("pagecreate", "#one", function(){
createComponent("radio", "radioComponent", radioBtnArray);
createComponent("checkbox", "checkboxComponent", checkBoxArray);
});
</script>
</body>
</html>
组件按预期呈现。但问题是,也会创建一些重复的组件。如果我创建任何组件,无论是复选框还是收音机, (评论这一行 createComponent("checkbox", "checkboxComponent", checkBoxArray); 或 createComponent("radio", "radioComponent", radioBtnArray); 并检查)它被正确渲染了。
我不知道代码有什么问题。
任何人都可以建议在运行中创建 JQM 小部件/组件的正确方法,并建议我哪个选项可以在 android 移动设备中提供快速和良好的响应,无论是动态创建组件还是使用静态组件...检查下面的链接 https://stackoverflow.com/questions/23341638/jquery-mobile-dynamic-components-vs-static-components
提前致谢。
【问题讨论】:
标签: android jquery performance jquery-mobile