我正在尝试根据第一页上点击的链接创建动态第二页。 这是通过pagebeforechange通知上的事件处理程序完成的。这是代码: http://jsfiddle.net/pCSmL/7/
var urlSt = $.mobile.path.parseUrl(data.toPage),
re = /^#second/;
$content.html(markUp);
//enhance page
$page.page();
data.options.dataUrl = urlSt.href;
$.mobile.changePage($page, data.options);
event.preventDefault();
但是,事件处理程序被多次调用,而第二次传递给事件处理程序的url没有参数(点击链接) - 这会导致错误的结果。 html插入后,在eventhandler中由于$ .mobile.changePage()导致多次调用,但由于preventDefault(),它应该已停止。
代码与我在文档中看到的非常相似: http://jquerymobile.com/demos/1.2.0/docs/pages/page-dynamic.html或 http://ctoinsights.wordpress.com/2012/01/03/jquery-mobile-tutorial-part-ii-dynamic-pages/ 正如您在jsfiddle中看到的那样 - http://jsfiddle.net/pCSmL/7/,它不起作用。
我通过将正则表达式检查从re = /^#second/
更改为re = /^#second\?/
来实现它,因此第二次调用不会通过HTML注入过程。显示http://jsfiddle.net/pCSmL/8/。但我仍然想知道第一次尝试。
var urlSt = $.mobile.path.parseUrl(data.toPage),
**re = /^#second\?/;**
$content.html(markUp);
//enhance page
$page.page();
data.options.dataUrl = urlSt.href;
$.mobile.changePage($page, data.options);
event.preventDefault();
为什么此代码http://jsfiddle.net/pCSmL/7/不起作用,即使它的步骤与http://jquerymobile.com/demos/1.2.0/docs/pages/page-dynamic.html中的代码类似?