首先重定向到url然后更改href

时间:2012-02-24 22:49:26

标签: javascript jquery url

这是我想要的代码,当我点击链接时首先重定向到逐页链接,然后更改href。问题是我单击此href更改但页面不更改

<ul id="searchTabs">
    <li class="current" >
        <a rel="nofollow" href="products.php" id="product">Sản phẩm</a>
    </li>
    <li class="tabRight">
        <a rel="nofollow" href="products.php?os=offer" id="seller">Cung</a>
    </li>
    <li >
        <a rel="nofollow" href="products.php?os=seeking" id="buy">Cầu</a>
    </li>
</ul>

这是脚本

$(window).load(function(){
    $("#product").click(function(){
        $('#product').attr('href','javascript:void(0);');
        $('#seller').attr('href','http://www.vmarket.com.vn/products.php?os=offer');  
        $('#buy').attr('href','http://www.vmarket.com.vn/products.php?os=seeking');
    });

    $("#seller").click(function() {
        $('#product').attr('href','http://www.vmarket.com.vn/products.php');
        $('#seller').attr('href','javascript:void(0);');
        $('#buy').attr('href','http://www.vmarket.com.vn/products.php?os=seeking');
    });

    $("#buy").click(function() {
        $('#product').attr('href','http://www.vmarket.com.vn/products.php');
        $('#seller').attr('href','http://www.vmarket.com.vn/products.php?os=offer');
        $('#buy').attr('href','javascript:void(0);');
    });
});

2 个答案:

答案 0 :(得分:3)

为什么需要更改链接的href属性?你为什么不直接使用以下方法重定向它们:

window.location.href='/to/infinity/and/beyond';

答案 1 :(得分:0)

我想我明白你要做的事情。

它不起作用的原因是因为当您单击链接时,它将正常地将用户发送到href内的任何内容。看起来你正在寻找的是一种让链接动态变化的方法,具体取决于你所在的页面?正确?

我建议使用服务器端语言来处理它。使用参数来控制要显示的链接。

举个例子:

<ul id="searchTabs">
    <li class="current" >
        <a rel="nofollow" href="products.php" id="product">Sản phẩm</a>
    </li>
    <li class="tabRight">
        <a rel="nofollow" href="products.php?os=offer" id="seller">Cung</a>
    </li>
    <li >
        <a rel="nofollow" href="products.php?os=seeking" id="buy">Cầu</a>
    </li>
</ul>

会变成:

<ul id="searchTabs">
       <li class="current" >
          <a rel="nofollow" href="products.php?links=1" id="product">Sản phẩm</a>
      </li>
      <li class="tabRight">
          <a rel="nofollow" href="products.php?links=2" id="seller">Cung</a>
      </li>
      <li >
          <a rel="nofollow" href="products.php?links=3" id="buy">Cầu</a>
      </li>
</ul>

然后,您可以使用PHP等服务器端语言对链接参数进行切换。然后根据设置更改href属性。

-

您的工作不正常的原因是因为它重定向了用户。这意味着你的JavaScript根本不重要,因为它对其他页面没有任何影响。

您可以阻止它更改实际位置,但听起来并不像您正在寻找的那样。但以防万一..为了防止此类事件你可以使用:

$(window).load(function(){
    $("#product").click(function(e){
        e.preventDefault();
        $('#product').attr('href','javascript:void(0);');
        $('#seller').attr('href','http://www.vmarket.com.vn/products.php?os=offer');  
        $('#buy').attr('href','http://www.vmarket.com.vn/products.php?os=seeking');
    });

    $("#seller").click(function(e) {
        e.preventDefault();
        $('#product').attr('href','http://www.vmarket.com.vn/products.php');
        $('#seller').attr('href','javascript:void(0);');
        $('#buy').attr('href','http://www.vmarket.com.vn/products.php?os=seeking');
    });

    $("#buy").click(function() {
        e.preventDefault();
        $('#product').attr('href','http://www.vmarket.com.vn/products.php');
        $('#seller').attr('href','http://www.vmarket.com.vn/products.php?os=offer');
        $('#buy').attr('href','javascript:void(0);');
    });
});

希望有所帮助:)如果您有任何想解释的话,请发表评论。