如何通过 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 BdoSomeBackgroundStuff() 完成后打开。

【问题讨论】:

你可以使用回调函数。 【参考方案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 中打开新页面的主要内容,如果未能解决你的问题,请参考以下文章

在vue中如何引jquer

jQuery初识

javascript 【ver2】可视范囲に入ってたらfadeIn※要jQuer

javascript tamañojavascriptstring dimensiones dinamicamente ancho texto nodo dom elemento jquer

jquer和封装的运动函数对比

感受JavaScript之美