2009-07-03 38 views
1

我如何去設置鏈接,好似隱藏的div某些功能,然後去註定網址這樣如何隱藏股利然後訪問網址上一次點擊

$(文件)。就緒

東西(function(){(「a」)。click(function(){(「#div1」)。slideUp(「slow」); $(「#div2」)。slideUp(「slow」) ; //然後轉到index.html }); });

這是我的設置。

<script type="text/javascript"> $(document).ready(function(){ 
    $("a").click(function(){ 
    $("#one").hide("slow"); 
    $("#two").hide("slow" , function(){ 
    window.location (index.html); 
     }); 
    }); }); </script> 

<div id="one"> some content </div> 

<div id="two"> some content </div> 

<a href="#">BUTTON HERE</a> 

只執行隱藏功能,如果我在html更換網址,只進行鏈接。我一定在做什麼錯誤

回答

2

「位置」實際上是窗口對象的屬性,不是的一種方法。這意味着你需要用=來賦值,而不是用()作爲參數傳遞它。試試這個代碼了:

$("a").click(function(event){ 
    event.preventDefault(); 
    var url = $(this).attr("href"); 
    $("#div1").slideUp("slow"); 
    $("#div2").slideUp("slow", function(){ 
     window.location=url; 
    }); 
}); 

此外,鏈接的默認行爲是去一個URL,它是怎麼回事,除非你喜歡的東西阻止它運行的行爲「返回false;」。雖然將href設置爲「#」不會讓用戶在任何地方,它會將它們滾動到頁面的頂部,這可能很煩人。最好只是返回false。

0

你有什麼可能是正確的。這裏有您需要什麼去一個新的URL:

top.location.href='someURL'; 
0

沒有什麼在jQuery來從當前頁面重定向至其他網頁,但JavaScript有它的位置對象,你可以使用它像:

$(document).ready(function(){ 
    $("a").click(function(){ 
     $("#div1").slideUp("slow"); 
     $("#div2").slideUp("slow"); 
     window.location(url); // or window.location.replace(url); 

    }); 
}); 

您可以在JavaScript中閱讀更多ABOT重定向這裏:How to redirect to another webpage in JavaScript/jQuery?

+2

實際上,這將重新定向,然後才能看到動畫。 window.location調用將在slideUp完成之前執行 – 2009-07-03 17:39:22

3

儘量把重定向作爲最後的效果基本show後執行的回調:

$(document).ready(function(){ 
    $("a").click(function(){ 
     $("#div1").slideUp("slow"); 
     $("#div2").slideUp("slow", function(){ 
      window.location(url); // or window.location.replace(url); 
     }); 
    }); 
}); 
+1

這是正確的,但我質疑需要在重定向之前執行動畫。有點像延遲不必要的動畫不可避免的。 – 2009-07-03 18:01:24

+0

這正是回調所做的。在最後一次滑動完成後,重定向被調用。檢查這裏的文檔http://docs.jquery.com/Effects/slideUp – 2009-07-03 18:25:09

0

你真的需要在javascript中設置位置嗎?剛入進href屬性有什麼問題?