如果动态更改href,则无法重定向

时间:2016-08-19 10:34:05

标签: javascript jquery html css

我的HTML看起来像这样: -

<a href="http://www.google.com" id="shopall-anchor"><div class="" id="shopall-btn"></div></a>

如果我点击该按钮,它会重定向到www.google.com(应该如此)。 我试图通过jQuery动态更改href,如下所示: -

$('#shopall-btn').click(function() {
    $('#shopall-anchor').attr("href","www.microsoft.com");
    return false;
});

调试后我发现点击事件后href已更改为microsoft.com,但我无法将用户重定向到www.microsoft.com

我有什么遗失的吗?

编辑1: -

我尝试了以下操作,但无法找到解决方案: - 1)该页面被重定向到&#34; www.google.com&#34;最初在下面解决方案的锚标记中提到。

$('#shopall-btn').click(function() {
    location.href = "www.microsoft.com";   
});

2)&#34; www.microsoft.com&#34;如果我这样做的话,会附加在我当前的链接中: -

$('#shopall-btn').click(function(e) {
    e.preventDefault();       // prevents default behaviour
    $('#shopall-anchor').attr("href","www.microsoft.com");
   return true;  // activate click
});

编辑2: -

如果您遇到相同问题并且href链接附加到当前网址,请检查我的答案。

5 个答案:

答案 0 :(得分:2)

它附加到当前网址的原因是因为您使用了相对网址,因为您没有在链接中使用http://

$('#shopall-anchor').attr("href", "http://www.microsoft.com");

这是无效重定向的主要原因,对于休息问题,您已经有了答案:

$('#shopall-btn').click(function() {
    var newURL = "http://www.microsoft.com";
    // This will just change the href (technically of no use)
    $("#shopall-anchor").attr("href", newURL);

    // Actually redirect to the different page
    document.location.href = newURL;

    // Prevent all other navigation
    return false;
});

答案 1 :(得分:1)

您可以使用location.href。在jQuery中

$('#shopall-btn').click(function() {
    location.href = "www.microsoft.com";   
  });

在Javascript中

<script type="text/javascript">
document.getElementById("shopall-btn").onclick = function () {
    location.href = "www.microsoft.com"; 
};

答案 2 :(得分:1)

$('#shopall-btn').click(function() {
    $('#shopall-anchor').attr("href","www.microsoft.com");
    //return false;//remove it,it stops the event propagation
});

答案 3 :(得分:1)

我使用以下代码解决了这个问题。

<!-- <a id="shopall-anchor"> -->
<div class="" id="shopall-btn"></div>
<!-- </a> -->

即。完全删除了锚标签。

按钮上的

和绑定点击事件如下: -

$('#shopall-btn').click(function(e) {
    document.location.href='http://www.pipabella.com';
});

希望它有所帮助。

编辑1: -

或者,如果您想使用锚标记,也可以这样做: -

$('#shopall-anchor').attr("href", "http://www.microsoft.com"); 

答案 4 :(得分:0)

您可以使用此代码

jQuery Library

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>

然后是html代码

<a href="javascript:void(0)"> <div class="" id="shopall-btn"></div></a>

然后这是jQuery代码

<script type="text/javascript">
    $('#shopall-btn').click(function(e) {
    window.location.href='http://www.microsoft.com';
   });
</script>

希望它会帮助你