如何在某些情况下阻止jquery.address更改url

时间:2011-07-10 20:20:45

标签: jquery ajax jquery-address

我使用jquery.address,这是一个插件,用于在拥有ajax重型网站时执行浏览器历史记录状态。 但是,在链接触发$ .address.change()函数的某种情况下,应该阻止它。

例如,当有导航时,其中1个元素是当前页面, 我希望它不会重新加载当前页面,而是阻止更改事件发生。

在$ .address.change()函数中我当然可以检查这是否是当前页面,然后返回,但我仍然看到浏览器地址栏中的地址发生变化。

这比重新加载页面更加错误,因为现在它向用户显示当前页面的错误网址。

所以如果有人知道如何阻止jquery.address更改url,例如当链接上有类“current”时?

最好的问候 Sander Houttekier

1 个答案:

答案 0 :(得分:1)

我会使用链接的点击处理程序以及状态跟踪变量m_pagem_currentFoo等,然后在更改地址之前输入if语句检查链接是否对应于当前状态

以下是其API页面中的第一个代码示例:

$.address.change(function(event) {
    // do something depending on the event.value property, e.g.
    // $('#content').load(event.value + '.xml');
});
$('a').click(function() {
    $.address.value($(this).attr('href'));
});

这里有一些修改:

//This is called when the address is changed due to navigation.
$.address.change(function(event) {
    // do something depending on the event.value property, e.g.
    // $('#content').load(event.value + '.xml');
});

//This is your click handler
$('a').click(function() {
    //Do any logic for choosing what happens with the address here.
    if(moon = newMoon) {
        $.address.value($(this).attr('href'));
    }
});