[英]jQuery.fadeOut() - How to apply sequentially to a set of elements?
[英]Integers skewed inside of a jQuery.fadeOut() function?
我正在嘗試運行一個簡單的post調用來檢查更新,如果有,則更新特定元素。 我的問題是在fadeOut函數(實現允許平滑的fadeOut
和fadeIn
)中,我的變量i
(用作計數)增加1而不自己做。 我嘗試重命名變量來計算,但發生了相同的行為。 我無法看到這種情況發生在哪里,或者為什么會這樣,甚至在fadeOut
函數之外使用變量的console.log
也不會顯示任何內容。
任何人都有任何關於發生了什么的想法?
我的代碼如下。
使用Javascript:
$.post(BaseUrl + $(this).val(), function (data) {
var i = 0;
$(element).parent().children(".MenuLink").each(function(index, e) {
if ($(this).text() != data[i]['Value']) {
$(this).fadeOut(function() {
$(this).html('<a href="' + data[i]['Key'] + '"class="psuedolink personlink">' + data[i]['Value'] + "</a>");
$(this).fadeIn();
});
}
i++;
});
});
HTML:
<div id="ActorMenu" class="Menu LastMenuItem">
<div id="ActorLabel" class="Label">Actor</div>
<div id="ActorDropdown" class="Dropdown">
<input id="ActorSearch" type="text" />
<hr />
<a class="MenuLink FirstDropdownItem" href="/Network/reveal_network_7777/Behavior/Summary/Actor/actor_id_0">actor_0</a>
<a class="MenuLink" href="/Network/reveal_network_7777/Behavior/Summary/Actor/actor_id_1">actor_1</a>
<a class="MenuLink" href="/Network/reveal_network_7777/Behavior/Summary/Actor/actor_id_2">actor_2</a>
<a class="MenuLink" href="/Network/reveal_network_7777/Behavior/Summary/Actor/actor_id_3">actor_3</a>
<a class="MenuLink" href="/Network/reveal_network_7777/Behavior/Summary/Actor/actor_id_4">actor_4</a>
</div>
</div>
發生這種情況是因為當執行每個循環時,i的值已經遞增,並且當執行fadeOut回調時,i的值已經改變。 嘗試這個
$.post(BaseUrl + $(this).val(), function (data) {
var i = 0;
$(element).parent().children(".MenuLink").each(function(index, e) {
if ($(this).text() != data[i]['Value']) {
$(this).data("i", i).fadeOut(function() {
var count = $(this).data("i");
$(this).html('<a href="' + data[count]['Key'] + '"class="psuedolink personlink">' + data[count]['Value'] + "</a>").fadeIn();
});
}
i++;
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.