簡體   English   中英

如何通過javascript函數在jQuery Mobile中打開新頁面

[英]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

});

一個具有類似解決方案的相關問題

全局AJAX處理程序

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM