回调未激发的条件语句

Conditional Statement with CallBack Not Fireing

本文关键字:条件 语句 回调      更新时间:2023-09-26

我有一个基本的条件语句,它有一个链接函数。在else方法之后,会有一个show()的回调,但不会触发。

我做错了什么?语法??

Thnx

var closeList = $('#west');
    $('#menuToggle').click(function(){
        var p = $('#west').css('display');
        if (p != "block") {
            $('#contentBox').width('70%', function() {
                $('#west').show(); // <--THIS DOESNT FIRE!!
            });
        } else {
            $('#west').hide();
            $('#contentBox').width('98%');
        }
    });

HTML

<!-- ------------------------- Main Content -------------------- -->
    <div id="wrapper" class="wrapperPosition">
        <div id="west">
        </div>
        <div id="contentBox">
            <div id="content" class="contentPosition"></div>
        </div>
    </div>

按顺序调用它们,而不是使用回调:

if (p != "block") {
    $('#contentBox').width('70%');
    $('#west').show();
}

问题是.width()没有同时接受值和函数的选项,只有一个或另一个:

.width( value )
.width( function(index, width) )

因此,将它与一个值配对意味着该函数将被忽略。


详细阐述我的评论:

if ($('#west').is(':hidden')) {
    $('#contentBox').width('70%');
    setTimeout(function () {
        $('#west').show();
    }, 10);
}