jQTouchは次のページに移動するときにJavaScriptコードを実行します
-
26-09-2019 - |
質問
私はコンテンツを動的に変更する必要がある iPhone アプリに取り組んでいます。次のコードがあります。
<div id="home">
<div class="toolbar">
<a class="blueButton" href="javascript: void(0);" onClick="$('#logout').show();">Logout</a>
<h1>AllaccessMD</h1>
</div>
<h1>Home</h1>
<ul class="edgetoedge" id="ulHome"></ul>
</div>
このページが呼び出されるときに、JavaScript 関数を呼び出します。
function setupHome(){
if(localStorage.role == "Specialist"){
var homeUL = '<li class="arrow"><a id="s,' + localStorage.userID + '" href="#ePresentations">My E-Presentation</a></li>'
+ '<li class="arrow"><a id="s,' + localStorage.userID + '" href="#date">My Newsletter</a></li>'
+ '<li class="arrow"><a id="s,' + localStorage.userID + '" href="#date">My Events</a></li>'
+ '<li class="arrow"><a id="s,' + localStorage.userID + '" href="#date">Medical Partners</a></li>'
+ '<li class="arrow"><a id="s,' + localStorage.userID + '" href="#date">Search</a></li>'
+ '<li class="arrow"><a id="s,' + localStorage.userID + '" href="#date">Profile</a></li>';
$('#ulHome').html(homeUL);
} else {
var homeUL = '<li class="arrow"><a id="m,' + localStorage.userID + '" href="#date">Medical Partners</a></li>'
+ '<li class="arrow"><a id="m,' + localStorage.userID + '" href="#date">Search</a></li>'
+ '<li class="arrow"><a id="m,' + localStorage.userID + '" href="#date">Profile</a></li>';
$('#ulHome').html(homeUL);
}
$('#ulHome li a').click(function(){
alert('I dont see this alert on a iPhone!');
if(this.href.search("#ePresentations") != 0) {
var idObject = getID(this.id);
setupEPresentation(idObject.id);
}
});
}
$('#ulHome li a').click() が機能しないことを除いて、これはすべて正常に機能します。Firefox と Chrome では正常に動作しますが、iPhone では動作しません。
どこで私は間違えましたか?または、これを実装するためのより良い方法はありますか?
ありがとう!
解決
クリックの代わりにタップを使用してください。また、リンクには href の場所があるため、自動ページ変更機能によってリンクが上書きされます。また、コード内の JavaScript と JavaScript 内のイベントを混在させたくないので、次のようにします。
<div id="home">
<div class="toolbar">
<a id="logoutButton" class="blueButton" href="#">Logout</a>
<h1>AllaccessMD</h1>
</div>
<h1>Home</h1>
<ul class="edgetoedge" id="ulHome"></ul>
</div>
そして
function setupHome(){
if(localStorage.role == "Specialist"){
var homeUL = '<li class="arrow"><a class="Presentation" id="s,' + localStorage.userID + '" href="#">My E-Presentation</a></li>'
+ '<li class="arrow"><a id="s,' + localStorage.userID + '" data="#">My Newsletter</a></li>'
+ '<li class="arrow"><a id="s,' + localStorage.userID + '" href="#">My Events</a></li>'
+ '<li class="arrow"><a id="s,' + localStorage.userID + '" href="#">Medical Partners</a></li>'
+ '<li class="arrow"><a id="s,' + localStorage.userID + '" href="#">Search</a></li>'
+ '<li class="arrow"><a id="s,' + localStorage.userID + '" href="#">Profile</a></li>';
$('#ulHome').html(homeUL);
} else {
var homeUL = '<li class="arrow"><a id="m,' + localStorage.userID + '" href="#">Medical Partners</a></li>'
+ '<li class="arrow"><a id="m,' + localStorage.userID + '" href="#">Search</a></li>'
+ '<li class="arrow"><a id="m,' + localStorage.userID + '" href="#">Profile</a></li>';
$('#ulHome').html(homeUL);
}
$('#ulHome li a').tap(function(){
alert('I dont see this alert on a iPhone!');
if(this.hasClass("Presentations") ) {
var idObject = getID(this.id);
setupEPresentation(idObject.id);
}
});
$('#logoutButton').tap(function() {
$('#logout').show();
});
所属していません StackOverflow