$(窗口).WIDTH();使用严格模式

时间:2016-06-09 14:37:24

标签: javascript jquery

$(window).width();功能正常运行而不使用"use strict"模式。但是,它不起作用。使用"use strict"模式后。

这里有什么问题?

(function($) {
    "use strict";

    $('#menu .nav > li').on("mouseover", function() {
        $screensize = $(window).width();
        if ($screensize > 991) {
            $(this).find('> .dropdown-menu').stop(true, true).slideDown('fast');
        }
        $(this).bind('mouseleave', function() {
            $screensize = $(window).width();
            if ($screensize > 991) {
                $(this).find('> .dropdown-menu').stop(true, true).css('display', 'none');
            }
        });
    });

})(jQuery);

1 个答案:

答案 0 :(得分:2)

如果您使用的是严格模式,则需要确保使用$screensize关键字声明var,否则它会告诉您它是一个未定义的变量。这可能会停止执行您的代码

From the documentation

  

首先,严格模式使得无法意外创建全局   变量。在正常的JavaScript中错误输入赋值中的变量   在全局对象上创建一个新属性并继续“工作”   (虽然未来的失败是可能的:可能,在现代JavaScript中)。   意外创建全局变量的赋值   扔严格模式

我建议您使用浏览器的控制台调试器并熟悉它。它应该抛出Uncaught ReferenceError: $screensize is not defined