在jQuery.fadeOut()函数内部倾斜的整数



我试图运行一个简单的post调用,检查更新,如果有的话,更新特定的元素。我的问题是,在fadeOut函数内(实现了平滑的fadeOutfadeIn),我的变量i(用作计数)增加了1,而不需要自己做。我尝试将变量重命名为count,但发生了相同的行为。我看不出这是在哪里发生的,或者为什么是这样,甚至console.logfadeOut函数之外的变量也没有透露任何东西。

有人知道发生了什么事吗?

我的代码如下。

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

最新更新