該解決方案嘗試:
var transition = false;
function save() {
if(!transition) {
var callback = function() {
transition = true;
$("a").click();
};
// your aynchronous code which will trigger callback after it finishes executing
return false;
}
else {
transition = false;
}
}
此功能的第一執行將不會觸發過渡(return false
從執行附每下一個事件處理程序阻止)。第二次執行,但不會觸發發送。當然,將transition
變量放在全局範圍內並不是一個好的做法,但它只是一個想法,可以解決這個問題。
此外,我認爲這裏面的onclick(在HTML),你應該有return save()
。
編輯根據所提供的FIDDLE:
與小提琴演奏我已經改變了a
元素一點點:
<a id="goto_trigger" href="#p2" data-role="button" onclick="return save()">Go To Page 2 with return</a>
而且腳本應該是這樣的:
$(document).bind('pagebeforechange', function(e, data) {
console.log("pagebeforechange");
});
var transition = false;
function save() {
if(!transition) {
setTimeout(function(){
alert("save trigger");
transition = true;
$("#goto_trigger").click();
},3000);
return false;
}
};
現在它按預期工作。
感謝您的回覆,但它遺憾地不起作用。我也嘗試過'onclick =「return false」'來試驗,但即使'返回false'也會觸發頁面更改。 – dk123 2013-04-23 03:36:32
@ dk123你能發表更多的代碼嗎? – Karol 2013-04-23 03:45:15
我發佈了一個簡化的jsFiddle示例,希望它有幫助。 – dk123 2013-04-23 04:08:11