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