使用jquery禁用href属性

时间:2013-05-26 07:58:36

标签: javascript jquery html href

我想禁用a链接刷新页面(即转到href链接)。但我希望根据href值修改网址。

目前,我正在尝试这个

$('.advertPP').click(function() {
    event.preventDefault();
    location.href = link.attr("href");
});

HTML链接

<a href="products?id=<?php echo $item_id; ?>" class="advertPP">Link</a>

由于两者都在同一页面上,所以我不希望刷新页面,但我希望在href值中修改url。

3 个答案:

答案 0 :(得分:1)

我注意到你没有将event对象传递给你的函数。你应该像这样传递对象:

$('.advertPP').click(function(event) {
                            //^^^^^ pass the event object
    event.preventDefault();
    $(this).attr("href", "http://...");
});

答案 1 :(得分:1)

检查document.URL和$(this).attr('href')是否相同,然后设置新url并返回false。 如果两者不同,则会重定向到页面。

$('a').click(function() {
    var currentUrl = document.URL
    if ($(this).attr('href') == currentUrl) {
        $(this).attr('href', 'http://www.google.com');
        return false;
    }
})

答案 2 :(得分:1)

您的代码充满(逻辑)错误。

$('.advertPP').click(function(event) {
    event.preventDefault();
    location.href = this.href; //or $(this).attr("href"), is the same thing, jQuery is not needed in this case
});

也许你希望你的页面在不刷新的情况下改变内容,所以你需要 AJAX ,这是一个例子:

$('.advertPP').click(function(event) {
    event.preventDefault();
    $.ajax({
        url: this.href,
        success: function(data) {
            //if the loaded page is a full html page, replace the HTML with the data you requested
            $("body").html(data); //make sure your data has only body contents, either you can replace the full HTML even if it is a bad practice $("html").html(data);
        }
    });
});