繁体   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