单击链接并加载页面JQUERY(Wordpress)后如何更改属性href?

时间:2016-06-17 16:00:24

标签: javascript jquery html wordpress

在点击链接和加载页面后点击URL时,我尝试更改URL链接(href属性)。我试过这个:

<a href="http://example.com/ASC/" class="sort_loading_country">link</a>
jQuery( ".sort_loading_country" ).click(function() {
    str = jQuery(".sort_loading_country").attr("href") ;
    if ((str.indexOf('ASC') + 1) > 0) {
        new_str = str.replace(/ASC/g, "DESC");    
        jQuery(".sort_loading_country").attr("href", new_str);
    }
});

这会更改网址,但点击链接后会打开新网页的新网址。我想在打开页面后跟踪链接后更改URL。我也尝试了这个:

jQuery(".sort_loading_country").click(function() {
    str = jQuery(".sort_loading_country").attr("href");

    jQuery(document).ready(function() {
        if ((str.indexOf('ASC') + 1) > 0) {
            new_str = str.replace(/ASC/g, "DESC");
            jQuery(".sort_loading_country").attr("href", new_str);
        }
    });

同样的行为,点击链接 - 然后用新网址打开新页面。当我点击带有旧网址的链接打开页面并在此之后将url更改为href中的new时,我希望这样。 我错过了什么吗?有人知道如何在使用旧URL加载页面后更改属性href?

4 个答案:

答案 0 :(得分:0)

主要错误(如评论中所述),$(document).ready()需要包装所有jQuery代码。

工作jsFiddle

N.B:我已将jQuery引用替换为jsFiddle中的$。你可以使用

答案 1 :(得分:0)

是的 - 所以在跟踪链接之前调用了onclick函数,因此您需要更改URL,然后跟踪该URL。您需要做的是延迟代码的执行,以便在遵循URL后发生。

您可以使用setTimeout方法执行此操作,如下所示:

jQuery( ".sort_loading_country" ).click(function() {
    setTimeout(function() {
        str = jQuery(".sort_loading_country").attr("href") ;
        if ((str.indexOf('ASC') + 1) > 0) {
            new_str = str.replace(/ASC/g, "DESC");    
            jQuery(".sort_loading_country").attr("href", new_str);
        }
    }, 1);
});

这会延迟执行代码,直到跟踪链接为止。

答案 2 :(得分:0)

与上面类似,第一次点击将是/ ASC /,如果你再次点击它将是/ DESC /.

&#13;
&#13;
jQuery( ".sort_loading_country" ).click(function() {
	console.log($(this).attr("href"));
    setTimeout(function() {
        str = jQuery(".sort_loading_country").attr("href") ;
        if ((str.indexOf('ASC') + 1) > 0) {
            new_str = str.replace(/ASC/g, "DESC");    
            jQuery(".sort_loading_country").attr("href", new_str);
        }
    }, 1);
    return false;
});
&#13;
&#13;
&#13;

答案 3 :(得分:0)

所以你需要使用存储,就像用户点击链接一样,每当他回来时,它将直接改变href

<a href="https://example.com/ASC/" class="sort_loading_country">link</a>

if(localStorage.getItem("url", "DESC")){
    str = jQuery(".sort_loading_country").attr("href");

    jQuery(document).ready(function() {
        if ((str.indexOf('ASC') + 1) > 0) {
            new_str = str.replace(/ASC/g, "DESC");
            jQuery(".sort_loading_country").attr("href", new_str);
        }
    });
}
jQuery(".sort_loading_country").click(function() {
    localStorage.setItem("url", "DESC");
    alert(jQuery(".sort_loading_country").attr("href"))
});

JsFiddle URL

https://jsfiddle.net/8f8dL72v/