2014-03-31 53 views
0

得到下面這個代碼(選擇頁面上的第一段然後施加一個切換功能到它,這動畫高度(增加/通過量減少的話)。jquery的肘節動畫元素消失

問題是,正如一旦頁面加載第一段消失,因爲日子會把你看,如果ü運行它(在某種程度上得到了顯示:無屬性,這大概是爲什麼它消失)

人知道爲什麼會發生這種情況

<html> 
<head> 
    <title></title> 
    <script src="jquery-1.11.0.js"></script> 
    <!-- <script src="jquery.color-2.1.0.js"></script> --> 
    <script> 
    $(document).ready(function(){ 
     $('p:first').toggle(function() { 
      $(this).animate({'height':'+=150px'}, 2000, 'linear'); 
     }, function() { 
      $(this).animate({'height':'-=150px'}, 2000, 'linear'); 
     }); 
    }); 
    </script> 
</head> 
<body> 
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur, ipsa, ea, et alias architecto iste ipsum velit esse soluta rem earum magni veritatis voluptatem consequatur omnis recusandae beatae quaerat praesentium!</p> 
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur, ipsa, ea, et alias architecto iste ipsum velit esse soluta rem earum magni veritatis voluptatem consequatur omnis recusandae beatae quaerat praesentium!</p> 
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur, ipsa, ea, et alias architecto iste ipsum velit esse soluta rem earum magni veritatis voluptatem consequatur omnis recusandae beatae quaerat praesentium!</p> 
</body> 
</html> 
+1

好耶,你有第一款的文檔準備命令被激活後切換。看起來它正在按照它所告訴的那樣做。 – Rich

回答

1

That toggle在v1.9中被刪除的jquery。而是使用this toggle,它顯示並隱藏了元素。

編輯:擴大這一點。 v1.9之前的jQuery有兩種不同類型的toggle。一種是你在這裏試圖使用的那種。這將允許您定義兩個函數,在每次單擊元素時調用交替。這完全在jquery的v1.9中被刪除。其他toggle只是讓你切換元素的可見性。如果它是可見的,隱藏它,如果隱藏,顯示。由於現在只有一個toggle(隱藏/顯示),即使您正在嘗試調用舊的(現在已刪除的),也是您實際調用的內容。您需要自己重新創建此功能。

+0

歡呼的夥計。你是一個王子 – user3435279

1

您在$('p:first')上使用.toggle()將顯示或隱藏匹配的元素。由於您在DOM準備就緒時撥打.toggle(),即$(document).ready(function()第一個p將被隱藏。

從文檔:

The matched elements will be revealed or hidden immediately, with no animation, by changing the CSS display property. If the element is initially displayed, it will be hidden; if hidden, it will be shown. The display property is saved and restored as needed. If an element has a display value of inline, then is hidden and shown, it will once again be displayed inline.