您好我正在尝试获取一个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。也就是说,警报触发器不会被隔离,无法回退或转发浏览器按钮。
三江源
答案 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 (#))