通过pagebeforechange创建动态页面无效

时间:2013-06-10 06:49:23

标签: jquery-mobile

我正在尝试根据第一页上点击的链接创建动态第二页。 这是通过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.htmlhttp://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中的代码类似?

0 个答案:

没有答案