如何从javascript函数在jQuery Mobile中打开一个新页面

How to open a new page in jQuery Mobile from javascript function

本文关键字:新页面 一个 javascript 函数 Mobile jQuery      更新时间:2023-09-26

我有一个按钮在我的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 BdoSomeBackgroundStuff()完成时打开。

因为这个按钮已经有一个事件(提交)

使用preventDefault或返回false:

$(document).ready( function() {
$("#submit").bind('click', function(event){
     event.preventDefault(); //or just use : return false; at last  
     doSomeBackgroundStuff();
});

您有几个选择。

首先,使用已有的内容,您可以为绑定事件使用回调函数,并添加窗口。打开以加载新页面,并简单地传递一个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

这是对窗口的进一步阅读。如何使用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处理程序

希望能有所帮助