1

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

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

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

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

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

最好的问候桑德·豪特基尔

4

1 回答 1

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'));
    }
});
于 2011-07-12T08:26:38.170 回答