gpt4 book ai didi

javascript - Jquerymobile 样式化动态创建的列表

转载 作者:行者123 更新时间:2023-11-29 22:00:40 25 4
gpt4 key购买 nike

我在 google 和 stackoverflow 上广泛搜索了这个问题,但没有找到任何解决方案。

我正在动态创建嵌套的可折叠项,并且在最内层有一个 ListView 。我的可折叠项变得很复杂,但列表却没有。与 stackoverflow 上的其他问题相比,这是不同的,因为在从字符串解析接收到的 json 时生成了多级层次结构。请查看代码并帮助我设置列表元素的样式。

   <div data-role="page" id="pageone">
<div data-role="header">
<h1>My items</h1>
</div>



<div data-role="main" class="ui-content">
<div data-role = "collapsible-set" id="set">

<div>

Javascript:

<script>
var commodity;
var variety;
var grade;
var content;
var text;
var xmlhttp;
var jsons ='[{"Turmeric":[{"Bulb":["Grade 2","Grade 1"]},{"Finger":["Grade 1"]}]}]';

console.log(jsons);

var data = $.parseJSON(jsons);
var nextId = 0;
$.each(data, function(key, value){
$.each(value, function(key, value){ //Runs for each commodity

commodity = key;
var data1 = value;

$(document).on("pageinit", function() {
nextId++;

content = "<div data-role='collapsible' data-collapsed-icon='arrow-r' data-expanded-icon='arrow-d' id='setk'><h3> " + commodity + "</h3><p>";

$.each(data1, function(key, value){
$.each(value, function(key, value){
variety = key;

content = content + "<div data-role='collapsible' data-collapsed-icon='arrow-r' and data-expanded-icon='arrow-d' id='setk'><h3> " + variety + "</h3><p>"+
'<ul data-role="listview" id="noth">';

for(var i=0, len=value.length; i < len; i++){
grade = value[i];
content=content+'<li><a href="ext.html" rel="external">'+grade+'</a></li>';
}
content = content + '</ul>';
content = content + "</p></div>";
});
});
content = content +"</p></div>";
$("#set").append( content );//.collapsibleset('refresh');
$("#set").enhanceWithin();
});
});
});
</script>

最佳答案

工作示例:http://jsfiddle.net/eL9qL/

HTML:

<!DOCTYPE html>
<html>
<head>
<title>jQM Complex Demo</title>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=no; target-densityDpi=device-dpi"/>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css" />
<!--<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>-->
<script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>
</head>
<body>
<div data-role="page" id="index" data-theme="a" >
<div data-role="header">
<h3>
First Page
</h3>
<a href="#second" class="ui-btn-right">Next</a>
</div>

<div data-role="content">
<div data-role = "collapsible-set" id="set">

<div>
</div>

<div data-role="footer" data-position="fixed">

</div>
</div>
<div data-role="page" id="second" data-theme="a" >
<div data-role="header">
<h3>
Second Page
</h3>
<a href="#index" class="ui-btn-left">Back</a>
</div>

<div data-role="content">

</div>

<div data-role="footer" data-position="fixed">

</div>
</div>
</body>
</html>

JavaScript:

var commodity;
var variety;
var grade;
var content;
var text;
var xmlhttp;
var jsons ='[{"Turmeric":[{"Bulb":["Grade 2","Grade 1"]},{"Finger":["Grade 1"]}]}]';

console.log(jsons);

var data = $.parseJSON(jsons);
var nextId = 0;
$.each(data, function(key, value){
$.each(value, function(key, value){ //Runs for each commodity

commodity = key;
var data1 = value;

$(document).on("pageinit", function() {
nextId++;

content = "<div data-role='collapsible' data-collapsed-icon='arrow-r' data-expanded-icon='arrow-d' id='setk'><h3> " + commodity + "</h3><p>";

$.each(data1, function(key, value){
$.each(value, function(key, value){
variety = key;

content = content + "<div data-role='collapsible' data-collapsed-icon='arrow-r' and data-expanded-icon='arrow-d' id='setk'><h3> " + variety + "</h3><p>"+
'<ul data-role="listview" id="noth">';

for(var i=0, len=value.length; i < len; i++){
grade = value[i];
content=content+'<li><a href="ext.html" rel="external">'+grade+'</a></li>';
}
content = content + '</ul>';
content = content + "</p></div>";
});
});
content = content +"</p></div>";
$("#set").append( content );//.collapsibleset('refresh');
$("#set").enhanceWithin();
});
});
});

解决方案:

如果您想正确增强内容,您应该使用 .enhanceWithin(); 函数。请记住,您正在使用两个不同的小部件,但您只增强了其中一个。此功能将增强动态添加的所有内容。当然这个功能只适用于 jQuery Mobile 1.4+。如果您使用的是较旧的 jQuery Mobile 版本,请告诉我,我会进行必要的更改。

关于javascript - Jquerymobile 样式化动态创建的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23932150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com