2012-02-24 27 views
-6

這是我想要的代碼,當我點擊鏈接時,首先通過鏈接重定向到頁面,然後更改href。該problema是,當我點擊這個HREF的變化,但頁面不改變首先重定向到url然後更改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);'); 
    }); 
}); 
+4

請格式化您的代碼,而不是粘貼超長的單行代碼。 – 2012-02-24 22:52:15

回答

3

爲什麼你需要更改該鏈接的href屬性?你爲什麼不直接重定向他們使用:

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

我這樣做,但不工作 – Nguyen 2012-02-24 23:22:43

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);'); 
    }); 
}); 

希望幫助:)發表評論,如果有什麼要解釋的。