在jquery mobile中修改后退按钮href

时间:2013-06-23 13:29:45

标签: jquery jquery-mobile

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

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

在控制台中,它显示新的网址但不起作用。另外,有人能说出在jQuery mobile中修改后退按钮历史记录的正确方法吗?

2 个答案:

答案 0 :(得分:1)

方法1

如果要在点击时重定向,则必须从data-rel标记中删除a,因为data-rel优先于href。以下是我如何使用它。

  • 我有三个页面,#mypage1animalspage3
  • 在第二页的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(更好的方法)

将此事件绑定到a,并设置data-rel。您可以在pageinit

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

请注意,您必须使用 {/ 1>} stopImmediatePropagationpreventDefault来完成此工作。

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

方法3(最干净的方式)

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

答案 1 :(得分:0)

您可以在按钮中添加id =“backchange”并更改jQuery中的文本:

$(“#backchange .ui-btn-text”)。text(“nextext”);