私は複数ファイルのjquery phonegapアプリケーションを持っています。私はphonegap 1.4.1、jQuery 1.7.1、jQuery Mobile 1.1.0 RC1を使用していますjQueryのモバイルページのロードイベントがjavascriptの起動を2回委任しました
インデックスファイルの先頭には、「kkpage」というページのpageinitで起動するスクリプトブロックがあります。 ブロックは、フォームの提出と、「kkpage」上の要素の動的な隠蔽/表示を制御します。
提出が成功すると、別のページに転送され、フォームに再度記入するオプションが表示されます。
"kkpage"に戻ると、ページのスクリプトブロックが2回発射されたように見えます。送信ボタン( "#kkopendialog")を押すと確認ダイアログが開き、ユーザーは「はい」を押して、 2回
ユーザーがフォームを送信した後にコードを1回だけ実行するか、コードを削除/停止するにはどうすればよいですか?
私はアプリをナビゲートするchangepageを使用していると私はmobile.loadPage
を使用してページをプリロードしていデリゲートコード:私はここで周りを探してきた
$(document).delegate("#kkpage", "pageinit", function() {
...
});
、グーグルとチェックjQMのフォーラムに参加しましたが、私の解決策はありませんでした。 jqueryの.one、.die、および.unbindだけでなく、条件を使用してみましたが、役に立たないです。
ご協力いただきありがとうございます!
UPDATE:MORE以下のコード
インデックス:
$(document).delegate("#kkpage", "pageinit", function(event) {
$("#klinikkurt #KKopendialog").click(BlurIt2);
function BlurIt2() {
$("#klinikkurt #q15").blur();
$("#klinikkurt #q16").blur();
}
function SubKK(button) {
if (button == 1){
$("#klinikkurt").submit();
}
else if (button == 2){
}
}
function showConfirmKK(cdata) {
navigator.notification.confirm(
'\304r du s\344ker p\345 att du vill skicka in din Kurtning?', // message
SubKK, // callback to invoke with index of button pressed
'Skicka in?', // title
'Ja,Nej' // buttonLabels
);
}
$('#KKopendialog').addClass('ui-disabled');
$("#KKopendialog").live('tap', function(event) {
showConfirmKK();
return false;
});
$("#klinikkurt").submit(function(e) {
$.mobile.showPageLoadingMsg();
var dataString = $("#klinikkurt").serialize();
$.ajax({
type: "POST",
url: "http://DOMAIN.se/script/kurt2/receive.php",
data: dataString,
datatype: "html",
success: function() {
$.mobile.changePage("tackkk.html", { transition: "turn"});
window.plugins.googleAnalyticsPlugin.trackPageview("KKifyllt");
}});
e.preventDefault();
});
});
"kkpage" は、フォームだけでなく、送信ボタンが含まれています
<a href="#" id="KKopendialog" data-role="button">Skicka in</a>
それは私が「didnの複数のページにありますので、どのようにjsfiddleそれを知っている
更新2:フォームhtmlとして要求:
<form id="klinikkurt" method="POST" target="result" ><input type="hidden" name="id" value="XXXX" /><input type="hidden" name="noframe" value="" />
<h2>Placering/ort</h2>
<div class="questioncontainer">
1.	Placering<br />
<select name="q1" id="q1" data-theme="d">
<option value="null"> -- Välj alternativ -- </option>
<option id="24" value="24" >T9 Psykiatri</option>
<option id="25" value="25" >T9 Ögon</option>
<option id="26" value="26" >T9 Öron-näsa-hals</option>
<option id="27" value="27" >T10 Gynekologi</option>
<option id="28" value="28" >T10 Obstetrik</option>
<option id="29" value="29" >T10 Pediatrik</option>
</select><br /></div>
<div class="questioncontainer">
2.	Ort
<select name="q2" id="q2" data-theme="d">
<option value="null"> -- Välj alternativ -- </option>
<option id="1" value="1" >Arvika</option>
<option id="2" value="2" >Avesta</option>
<option id="3" value="3" >Bollnäs</option>
<option id="4" value="4" >Enköping</option>
<option id="5" value="5" >Eskilstuna</option>
<option id="23" value="23" >Tierp</option>
<option id="24" value="24" >Uppsala</option>
<option id="25" value="25" >Visby</option>
<option id="26" value="26" >Västerås</option>
<option id="27" value="27" >Örebro</option>
<option id="28" value="28" >Östhammar</option>
</select><br /></div>
<div class="questioncontainer">
<div class="fewq">9.</div><div class="moreq">10.</div>	I vilken grad fick du själv aktivt handlägga patienter (t.ex. leda rond, resonera/diskutera/föreslå diagnoser/utredningar/behandlingar)?
<div class="popupright">I allra högsta grad</div>
<div class="popupleft" style="position:relative;bottom:-30px">Inte alls</div>
<div style="position:relative;top:-25px;;">
<div data-role="fieldcontain">
<fieldset data-role="controlgroup" data-type="horizontal">
<legend> </legend>
<input type="radio" name="q11" id="1" value="1"/>
<label for="1"> </label>
<input type="radio" name="q11" id="2" value="2"/>
<label for="2"> </label>
<input type="radio" name="q11" id="3" value="3" />
<label for="3"> </label>
<input type="radio" name="q11" id="4" value="4" />
<label for="4"> </label>
<input type="radio" name="q11" id="5" value="5" />
<label for="5"> </label>
<input type="radio" name="q11" id="6" value="6" />
<label for="6"> </label>
</fieldset>
</div>
</div>
</div>
<div id="kkreqmsg"><br><br>Oj då! Du kan tyvärr inte skicka in en kurtning utan att ange termin och placering!</div>
<a href="#" id="KKopendialog" data-role="button">Skicka in</a>
</form>
さらにコードを投稿するか、jsFiddleで問題を示すようにして、それで遊ぶことができます。あなたのコードは、あなたが使用しているjqueryとjquery mobileのバージョンのようなものを判断するのに役立ちます。 – codaniel
それは複数のページにあるので、私はそれをどのようにjsfiddleするのか分からなかった。上記のいくつかの詳細といくつかのコードを追加しました。ありがとう! – Hessius
あなたのフォームコードも表示するのはどうですか? – codaniel