Javascript/jQuery,if 和 else 语句都被执行

标签 javascript jquery

我不太确定这里发生了什么,感觉我可能遗漏了一些可能非常明显的东西,但我有一个 if else,其中两个语句都被调用。如果有人能阐明这一点,那就太好了。下面的代码使用 asual 并且应该检测 div $('#' + $.address.hash() 是否已经被加载。但是 if 和 else 事件都被触发顺序。事实上,else 语句触发了两次...

$('#lmit_back').show(400, function() {
    if($('#' + $.address.hash() ).length == 0) {
        $('#init').load('inithandler.php', { 'address' : $.address.hash() }, function() {
            $('#' + $.address.hash()).fadeIn(1000, function() {
                $('#remn').load('pagehandler.php',{ 'address' : $.address.hash() });
            });
        });
    }  
    else {
        alert('hey');
    }
});

这是所有代码..我无法真正弄清楚是什么导致它执行两次,除非它与 address.change 有关,我并不像我想的那样熟悉。

if (($.address.hash() == '')) {$.address.hash('home');}

    $('#lmit_back').click(function() {

            $.address.hash('home');

    });


    $.address.change( function() {  



        if (!($.address.hash() == 'home')) 
        {



        var exception = '.' + $('[href="#' + $.address.hash() + '"]').parent().attr('class');


            $('#left_menu_bar li:not(' + exception + ')').hide(300,function() {

                $(exception).show( function() {

                    $('#left_menu_bar').animate({ width:'100%'},400, function() { 

                        $('#lmit_back').show(400, function() {


                                if ($('#' + $.address.hash() ).length === 0)
                                {

                                    $('#init').load('inithandler.php', { 'address' : $.address.hash() } , function() { 

                                        $('#' + $.address.hash()).fadeIn(1000, function() {

                                            $('#remn').load('pagehandler.php',{ 'address' : $.address.hash() });

                                        });



                                    });

                                }
                                else
                                {

                                alert('nigs');

                                }

                        });

                    });

                });

            });



        }
        else
        {




            $('#left_menu_bar').animate({ width:'251px'}, function() { 

                $('#left_menu_bar li').show( function() {

                    $('#lmit_back').hide();

                });

            });



            $('#left_menu_bar').css('width','251px');



        }


    }); 

最佳答案

这里的问题不是由您粘贴的代码引起的。代码可以多次运行并命中多个分支的唯一方法是它被执行多次。查看周围的代码,寻找可以多次调用的地方。

关于Javascript/jQuery,if 和 else 语句都被执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12469581/

相关文章:

javascript - jQuery:实时计算单词

javascript - 在 JavaScript 中创建其他对象的数组?

javascript - 了解搜索表单的 jQuery 实现

javascript - 类型错误 : Cannot call method 'click' of undefined

javascript - jQuery .each() 中的 SetInterval

javascript - 根据位置计算链接并分配为变量?查询

javascript - 当事件变为 "true"时,为什么我的 JQuery 函数没有在克隆元素上触发?

javascript - 是否有可以显示正在执行的 JS 的 Google Chrome 扩展程序?

javascript - 识别哪个选项卡发出了请求

javascript - 如何从iframe标签中获取data-id值?