最初に、私は jQuery モバイルやあらゆるタイプのモバイル開発に不慣れだと言って始めましょう。ただし、Phonegap を使用する Icenium を使用してアプリを構築しています。私のアプリはかなりうまく動作しますが、理解できないことが 2 つあります。
- 入力ボタンと対話する方法、つまり、私のボタンのようにクリックハンドラーを起動します。
- ユーザーがテキスト ボックスをクリックしたときにすべてのテキストを強調表示する方法。したがって、キーパッドの戻るキーを使用する必要はありません。
さまざまな用語をグーグルで検索してみましたが、何も見つからないようです。問題は、jQuery という単語を何にでも入れると、結果が狂ってしまうことです。
ここに私のHTMLがあります。
<body>
<div data-role="page" id="home">
<div data-role="header">
<div id='SearchInput'>
<label for="txtSearchTerm">Search For a Session</label>
<input type="text" id="txtSearchTerm" value="" />
<input type="button" id="btnFilterSessions" value="Filter Sessions" />
<span id="sessionCount"></span>
</div>
</div>
<div data-role="content">
<ul id="sessionsList"></ul>
</div>
<div data-role="footer" data-position="fixed" data-id="oneFooter">
<span class="footerText">@r0k3t</span>
</div>
</div>
これが私の完全なJSです。
document.addEventListener("deviceready", onDeviceReady, false);
var codeMashApp = {};
function listSessions(sessions) {
$("#sessionsList").empty();
sessions.each(function() {
var title = $(this).find('Title').text();
var uri = $(this).find('URI').text();
$("#sessionsList").append("<li class='sessionTitle'><a href='#detailsPage' id='" + uri + "' data-transition='slide'>" + title + "</a></li>");
});
$("#sessionCount").text("Number of sessions: " + sessions.length);
}
function onDeviceReady() {
$.ajax({
type: "GET",
url: "http://rest.codemash.org/api/sessions",
data: "{}",
success: function(d) {
codeMashApp.rootElement = d.documentElement;
var sessions = $(codeMashApp.rootElement).find("Session");
listSessions(sessions);
}
});
$("#btnFilterSessions").click(searchSessions);
}
function searchSessions() {
var searchTerm = $("#txtSearchTerm").val();
if (searchTerm) {
var sessions = $(codeMashApp.rootElement).find("Title:contains(" + searchTerm + ")").parent();
listSessions(sessions);
} else {
reloadAllSessions()
}
}
function reloadAllSessions() {
var sessions = $(codeMashApp.rootElement).find("Session");
listSessions(sessions);
}