jQuery地址 - 后退按钮

时间:2011-02-23 05:04:26

标签: jquery

您好我正在尝试获取一个AJAX网站& jquery.address-1.3.2.min.js工作。

我有.click()事件使用.load来更新DIV成功运行。 我已经更新了例如:rel =“address:profile”,当我点击不同的链接时,我可以看到URL的变化。

我也把这段代码放在:

$(function() {
  $.address.change(function(event) {
    alert('here');
  });
});

我可以看到正在触发.change()事件。

我不确定如何编写代码以使后退/前进按钮实际工作(对不起,我是JQUERY的新手)。我在网上看过一些例子,但仍然感到困惑。希望这是一个非常简单的例子。

我还需要重新运行.load()以再次加载DIV。也就是说,警报触发器不会被隔离,无法回退或转发浏览器按钮。

三江源

3 个答案:

答案 0 :(得分:2)

现在您需要对$.address.change()事件中的div进行必要的更改以进入所需状态,所有页面状态更改都会在该事件中进行。

在jquery地址中,您需要执行两个基本任务,首先,使用您所做的事件使链接更改深层链接值,但使它们更新$.address.value(value_here)方法;第二,使用change()事件捕获所有更改,以应用页面状态中的更改。

您还可以使用value()属性来确定正确的状态,例如

$("a").onClick(function () {            //You dont need this part if you used
  $address.value($(this).attr('href')); //the 'rel' attribute in the links
});

$.address.change(function(event) {     //Catching URL change in `event`
  $.ajax({                             //You said you're using AJAX so
    url: "."+event.value+".html",      //using `value` attr. to get the URL+html
    cache: true,
    success: function(response) {
      $("#content_div").html(response);    //loading page in div using AJAX
    }
  });
});

这只是一个示例,您可以使用它以您喜欢的任何其他方式加载您的网页,因为$.address.value()会返回#之后的深层链接值。

执行此操作后,后退和前进按钮将更改页面的网址,change()事件将捕获该页面,您的页面将按预期工作。

所以基本上你需要对jquery地址的工作方式有一定程度的了解,并且需要处理你的代码。此外,jquery地址文档页面包含所有方法和事件的列表,以防您忘记其中任何方法和事件。

答案 1 :(得分:0)

并没有真正理解你的问题,但如果你试图使用ajax页面制作后退按钮(例如你改变了哈希并使用后退按钮返回到前一个)我建议使用Ben Alman's jQuery BBQ

有一些很好的教程,对我来说很有用。

答案 2 :(得分:0)

在选择用于订阅哈希更改的插件时,请注意新版本的jQuery不支持浏览器检测,它们可以使用功能检测。因此,一些旧的插件不再起作用了。当我想使用jQuery Address时,这发生在我身上。 适合我的插件叫做Path.js(https://github.com/mtrpcic/pathjs)。 我的上下文是:一个包含多个步骤的页面,我希望能够使用浏览器的后退按钮返回到先前的状态。这就是我配置它的方式:

 Path.map("#2").to(function () {
        showStep2Page(); // hides the current DIV and shows the step 2 DIV
    });
    Path.map("#1").to(function () {
        showStep1Page();
    });
    Path.map("").to(function () { // this allows me to go to the first step and show the step 1 DIV 
        showStep1Page();
    });
    Path.listen(); // listens to changes in URL hash (after the pound sign (#))