[英]How to open a new page in jQuery Mobile from javascript function
我的html表單中有一個按鈕。當我在textfield
輸入值時,將執行后台操作並將數據發送到服務器。但是由於此按鈕已經有一個事件(提交),因此如何打開新頁面一次后台操作完成了嗎?
這是按鈕。
<a href="#" id="submit" data-role="button" data-inline="true"> Submit</a>
在我的javascript中,我有此功能
$(document).ready( function() {
$("#submit").bind('click', function(event){
doSomeBackgroundStuff();
});
這是從Page A
發生Page A
,我希望doSomeBackgroundStuff()
完成時打開Page B
因為此按鈕已經有一個事件(提交)
使用preventDefault或返回false:
$(document).ready( function() {
$("#submit").bind('click', function(event){
event.preventDefault(); //or just use : return false; at last
doSomeBackgroundStuff();
});
您有幾種選擇。
首先,使用已有的東西,可以對綁定事件使用回調函數,並添加window.open來加載新頁面,然后簡單地傳入URL或對其進行硬編碼。
您的jquery看起來像這樣:
$(document).ready( function() {
$("#submit").bind('click', function(event){
//fire AJAX request
doSomeBackgroundStuff();
},function(){//call back function
window.open('http://www.yourURL.com');
});//end bind
});//end doc ready
這是關於window.open的進一步閱讀- 如何使用jQuery打開新的HTML頁面?
第二種選擇是使用AJAX。 您將為新頁面設置一個AJAX請求,並在請求前后使用$ .ajaxSend和$ .ajaxComplete觸發函數。
您的jquery看起來像這樣:
//on button click
$('#submit').click(function(){
doSomeBackgroundStuff();
});
//ajax start handler
$(document).ajaxStart(function(){
//do stuff before AJAX request
});
//ajax complete
$(document).ajaxComplete(function(){
//do stuff after AJAX request
});
一個具有類似解決方案的相關問題 。
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.