1

我需要link根据某些情况更改 jQuery mobile 中的后退按钮。但是以下方法不起作用。

$.mobile.activePage.find('a[data-rel="back"]').attr('href',"#newPage");

在控制台中,它显示了新的 url,但它不起作用。另外,谁能告诉在 jQuery 移动中修改后退按钮历史记录的正确方法?

4

2 回答 2

1

方法一

如果你想在点击它时重定向,你必须data-rel从标签中删除,因为它的优先级更高。这是我如何让它工作的。adata-relhref

  • 我有三页#mypage1,,,,animalspage3
  • pagebeforeshow具有后退按钮的第二页上,我将这段代码放入其中,我将其更改href为重定向到#page3

    $(document).on("pagebeforeshow", "#animals", function (e) {
       var $a = $.mobile.activePage.find('a[data-rel=back]');
       $a.attr("href", "#page3");
       $a.removeAttr("data-rel");
    });
    
  • 请注意,pageinit在这种情况下不会起作用,因为该activePage对象仍将指向旧页面。

  • 演示:http: //jsfiddle.net/hungerpain/rDtKL/2/

方法2(更好的方法)

将此事件绑定到adata-rel它的集合上。您可以将其绑定在pageinit

$(document).on("pageinit", "#animals", function (e) {
    $(this).on("click", "[data-rel=back]", function (e) {
        e.stopImmediatePropagation();
        e.preventDefault();
        $.mobile.changePage("#page3");
    });
});

请注意,您必须同时使用两者 stopImmediatePropagationpreventDefault在点击时完成这项工作。

演示:http: //jsfiddle.net/hungerpain/rDtKL/3/

方法3(最干净的方法)

以编程方式将该按钮添加到您的header,以便您可以决定是否需要该data-rel属性。

于 2013-06-23T14:00:11.400 回答
0

您可以向按钮添加 id="backchange" 并更改 jQuery 中的文本:

$("#backchange .ui-btn-text").text("nextext");

于 2013-06-23T13:37:22.920 回答