2016-11-24 46 views
0

我在一個元素中設置了足夠的內容,可以使div的整體高度生效。對JQuery的Javascript承諾addClass

有問題的div使用JQuery vegas background slider來旋轉一些圖片。

不,我在點擊事件的元素中設置動畫並使用下面的javascript;

function loadSpecification() { 
     hideAll(); 
     $("#specification").removeClass("hidden").addClass("show", { 
      complete: function() { 
       console.log("completed animation"); 
       loadVegas(); 
      } 
     }); 
    } 

其中loadVegas()函數重新加載拉斯維加斯元件以設定的滑動以覆蓋新擴展的div。

但是,在這個實例中完整的函數沒有被解僱,我是否正確調用它?如果有的話,請問這裏有什麼問題?

我的CSS類如下;

.hidden { 
    display: none; 
    opacity: 0; 
    width: 0; 
    transition: opacity 1s ease; 
    -webkit-transition: opacity 1s ease; 
    -moz-transition: opacity 1s ease; 
} 

.show { 
    display: block; 
    opacity:1; 
    margin-bottom:10px; 
    /*width: inherit;*/ 
} 
+1

我不認爲addClass有一類和回調的任何簽名。我很確定這只是同步添加類 – Axnyff

+0

http://stackoverflow.com/questions/7134584/how-do-i-use-transitionend-in-jquery – DaniP

+0

可能重複[如何添加回調函數jQuery的addClass方法?](http://stackoverflow.com/questions/14567990/how-to-add-a-callback-function-to-the-addclass-method-of-jquery) – Alex

回答

4

工作正常,記得添加jQuery UI庫,因爲完整的函數並未在jQuery中實現,而是在jQuery UI中實現。有關更多信息,請參見docs

$("#specification").removeClass("hidden").addClass("show", { 
 
    complete: function() { 
 
    console.log("completed animation"); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="http://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script> 
 
<div id="specification">test</div>

+0

爲一個函數添加一個整個庫是有點開銷,不是嗎? – Alex

+0

@Alex我只是回答一個問題。不管是否開銷,這不是問題的主題。我同意,但這是一個巨大的開銷。 – Linek

+0

我剛剛提到它,沒什麼大不了的:)這個問題已經被回答了很多次,而不需要加載jquery ui,所以我只是覺得這不是好的做法。可以這麼說,不是嗎? :)你的願望不應該只是尋找任何解決方案,但也許也是一個好的 - 特別是如果它已被提及很多次之前...... – Alex