1

リンクがページを更新しないようにしたいa(つまり、href リンクに移動する)。しかし、値に従って、URLを変更したいと思い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を変更したいです。

4

3 に答える 3

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);
        }
    });
});
于 2013-05-26T08:09:07.533 に答える
1

eventオブジェクトを関数に渡していないことに気付きました。次のようにオブジェクトを渡す必要があります。

$('.advertPP').click(function(event) {
                            //^^^^^ pass the event object
    event.preventDefault();
    $(this).attr("href", "http://...");
});
于 2013-05-26T08:05:39.687 に答える
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;
    }
})
于 2013-05-26T08:06:37.737 に答える