JQ と JQM を使用して phonegap アプリに取り組んでいますが、この 1 つの奇妙な問題に本当に困惑しました。私が得ることができるすべての助けを本当に使うことができました、ありがとう!
説明するのは難しいですが、この 2 つのイベント ハンドラーがほぼ同一に見える場合、2 つの動的バインド イベント ハンドラーで .data() を同様に機能させることができませんでした。私はどこかで何かを逃したに違いない..ため息..
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!