使用 JQ 和 JQM 开发 phonegap 应用程序,这 1 个奇怪的问题真的把我难住了。我真的可以使用我能得到的所有帮助,谢谢大家!
有点难以解释,但是当这 2 个事件处理程序看起来几乎完全相同时,无法让 .data() 在 2 个动态绑定事件处理程序中类似地工作。我一定是在什么地方漏掉了什么……叹息……
HTML
<ul data-role="listview" id="notelist" data-split-icon="minus" data-split-theme="c">
<li id="entrytemplate" style="display:none">
<a class="btnpopupdetails" href="#" data-position-to="window" data-rel="popup" data-transition="pop">
<h3>TEMPLATE Faulty lift</h3>
<p>TEMPLATE Lift A1, at lobby, Skyscraper Plaza, was reported broken down on 25th Dec 2012</p>
</a>
<a class="btndelete" href="#" data-position-to="window" data-rel="popup" data-transition="pop">Delete</a>
</li>
</ul>
JS
// row is a single row from a resultset of a successful sql query
newrow.data('rowid', row.id); // integer
newrow.data('rowtitle', row.txttitle); // text
newrow.data('rowdescription', row.txtdescription); // text
console.log(newrow.data('rowtitle')); // value retrieved and displayed fine!
console.log(newrow.data('rowdescription')); // value retrieved and displayed fine!
newrow.appendTo('#notelist');
newrow.find('h3').text(row.txttitle);
newrow.find('p').text(row.txtdescription);
newrow.find('.btnpopupdetails').click(function() {
selectedrow = $(this).parent();
selectedrowid = selectedrow.data('rowid');
selectedrowtitle = selectedrow.data('rowtitle');
selectedrowdscription = selectedrow.data('rowdescription');
console.log(selectedrow.data('rowid')); // "TypeError: 'undefined' is not an object"
console.log(selectedrow.data('rowtitle')); // "TypeError: 'undefined' is not an object"
console.log(selectedrow.data('rowdescription')); // "TypeError: 'undefined' is not an object"
});
newrow.find('.btndelete').click(function() {
selectedrow = $(this).parent();
selectedrowid = selectedrow.data('rowid');
selectedrowtitle = selectedrow.data('rowtitle');
selectedrowdscription = selectedrow.data('rowdescription');
console.log(selectedrow.data('rowid')); // value retrieved and displayed fine!
console.log(selectedrow.data('rowtitle')); // value retrieved and displayed fine!
console.log(selectedrow.data('rowdescription')); // value retrieved and displayed fine!