如何通过 javascript 函数在 jQuery Mobile 中打开新页面
Posted
技术标签:
【中文标题】如何通过 javascript 函数在 jQuery Mobile 中打开新页面【英文标题】:How to open a new page in jQuery Mobile from javascript function 【发布时间】:2014-05-12 03:47:41 【问题描述】:我的 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 B
在doSomeBackgroundStuff()
完成后打开。
【问题讨论】:
你可以使用回调函数。 【参考方案1】:因为这个按钮已经有一个事件(提交)
使用 preventDefault 或返回 false:
$(document).ready( function()
$("#submit").bind('click', function(event)
event.preventDefault(); //or just use : return false; at last
doSomeBackgroundStuff();
);
【讨论】:
但这如何告诉javascript
打开Page B
?
如您所说,您的事件正在从默认事件功能中打开页面 A,所以现在您正在尝试打开页面 B,该页面将打开并阻止执行其他一些任务意味着不会打开页面 A
我想你误解了我的问题。submit
按钮打不开Page A
,它是那个页面中的一个按钮。【参考方案2】:
您有几个选择。
首先,使用您已有的内容,您可以为绑定事件使用回调函数,并添加 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 的进一步阅读 - How to open a new HTML page using jQuery?
第二种选择是使用 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
);
具有类似解决方案的related question。
Global AJAX handlers
希望对你有帮助
【讨论】:
我正在尝试在我的应用程序中打开一个新页面。Page B
不是网址,而是我的应用程序上的一个页面。但是,根据您的建议,我做了类似window.open("#page_b_id);
的操作。这将在新窗口中打开 Page B
(不是期望的结果)并且 doSomeBackgroundStuff()
不会执行。
听起来你需要一个 ajax 解决方案。你可以使用 ajax complete 方法来做一些背景资料。我对以下问题的回答可能会有所帮助***.com/questions/23216493/…以上是关于如何通过 javascript 函数在 jQuery Mobile 中打开新页面的主要内容,如果未能解决你的问题,请参考以下文章
javascript 【ver2】可视范囲に入ってたらfadeIn※要jQuer
javascript tamañojavascriptstring dimensiones dinamicamente ancho texto nodo dom elemento jquer