您好,我正在尝试让 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 吗?也就是说,警报触发器并不孤立于后退或前进浏览器按钮点击。
谢谢
最佳答案
现在您需要在 $.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()
返回 #
之后的值> 这就是你的深度链接值(value)。
完成此操作后,后退和前进按钮将更改页面的 URL,change()
事件将捕获该变化,并且您的页面将按预期工作。
所以基本上你需要对 jquery 地址如何工作有一定程度的了解,并围绕它工作你的代码。另外,jquery 地址文档页面有所有方法和事件的列表,以防您忘记其中任何一个。
关于jQuery 地址 - 后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5087222/