我想禁用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。
答案 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);
}
});
});