我有一些初学者问题...... 案例:一个按钮,它将 id="123"的 li 元素附加到 ul ListView 。单击这个新的 li 元素后,应该会出现一个新页面,显示已单击“id 123”。
只要 li 元素是硬编码的并且不是通过此按钮附加的,它就可以工作...这是我的错吗?
<script>
var passDataObject = { selectedId: null }
$(document).ready(function(){
$("#acclist li").on("click", function(e){
e.preventDefault();
passDataObject.selectedId = this.id;
$.mobile.changePage('#accountdetail');
});
$("#btn").click(function(){
var output = '<li id="123"><a href="#">Test Account</a></li>';
$("#acclist").append(output).listview('refresh');
});
});
$(document).on( "pagebeforeshow", "#accountdetail", function( e ) {
$("#details").html(["Selected id is: '", passDataObject.selectedId, "'"].join(""));
});
</script>
</head>
<body>
<div data-role="page" id="accountpage">
<div data-role="content">
<button id="btn">Add</button>
<br/>
<ul id="acclist" data-role="listview"></ul>
</div>
</div>
<div data-role="page" id="accountdetail">
<div data-role="content">
<div id="details"></div>
</div>
</div>
</body>
最佳答案
新创建的 DOM 没有获取事件,所以你需要做的是:
$('li').live('click',function(){
alert($(this).attr('id')));
});
关于jquery动态listview传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17443316/