.delay()不能处理我的.show()JQuery

时间:2016-09-22 12:50:10

标签: javascript jquery

我试图让我的页脚在移动设备上消失,并且仅在键盘打开时消失。我工作得很好,但问题是在键盘有时间关闭之前页脚重新出现。这是因为我使用文本框中的事件而不是键盘被打开。所以我认为解决这个问题的最佳方法是.delay()但是,这根本不起作用。有人有任何想法吗?

<script>
    var isMobileView = false; //global variable

    $(document).ready(function () {

        function setScreenWidthFlag() {
            var newWindowWidth = $(window).width();
            if ( $(window).width() > 600) {   
                isMobileView = false;
            }
            else {
                isMobileView = true;
            }
        }

        $(".tbinputArea").focus(function() {
            if(isMobileView)
                $("#footer").hide();
        });

        $(".tbinputArea").focusout(function() {
            if(isMobileView)
                $("#footer").delay(500).show();
        });

        setScreenWidthFlag();

        $(window).on("resize", function (e) {
            setScreenWidthFlag();
        });
    }); 
</script>

2 个答案:

答案 0 :(得分:2)

$("#footer").delay(500).show(0);

试试这个。

答案 1 :(得分:0)

参考这个解释,准确地解释了它的原因http://www.mattlunn.me.uk/blog/2012/06/jquery-delay-not-working-for-you/

延迟仅用于队列延迟而不是任何事件延迟,因此尝试在fadeIn或类似内容中添加一些事件。