jQuery jslint var在定义之前使用过

时间:2013-12-02 12:07:25

标签: javascript jquery jslint

我一直在使用jslint来尝试查看它对我的代码所说的内容,并且我得到了很多标志,但我正在努力改进它。但是我坚持错误

  

在定义之前使用了maxHeight

我的jQuery:

$.fn.thumbSizr = function () { // begin function
    "use strict";
    return this.each(function () {
        var $this = $(this);
            maxWidth = $(this).parent().width(); // Max width for the image
            minHeight = $(this).parent().height();    // Max height for the image
            ratio = 0;  // Used for aspect ratio
            width = $(this).width();    // Current image width
            height = $(this).height();  // Current image height

        if(width > maxWidth){
            ratio = maxWidth / width;   // get ratio for scaling image
            $(this).css("width", maxWidth); // Set new width
            $(this).css("height", height * ratio);  // Scale height based on ratio
            height = height * ratio;    // Reset height to match scaled image
            width = width * ratio;    // Reset width to match scaled image
        }

        // Check if current height is larger than max
        if(height < minHeight){
            ratio = minHeight / height; // get ratio for scaling image
            $(this).css("height", minHeight);   // Set new height
            $(this).css("width", width * ratio);    // Scale width based on ratio
            width = width * ratio;    // Reset width to match scaled image
        }

        var $img = $(this),
        css = {
            position: 'absolute',
            marginLeft: '-' + (parseInt( $img.css('width') ) / 2) + 'px',
            left: '50%',
            top: '50%',
            marginTop: '-' + (parseInt( $img.css('height') ) / 2) + 'px'
        };

        $img.css( css );
   });
};

我不是jQuery专业版,所以这可能很有绳索,但我真的想让它尽可能好。任何人都可以解释和建议为什么我收到此消息以及如何在将来避免它?

由于

1 个答案:

答案 0 :(得分:2)

在使用单个“var”

声明多个变量时,您使用的是分号而不是逗号

这部分错了:

 var $this = $(this);
     maxWidth = $(this).parent().width(); // Max width for the image
     minHeight = $(this).parent().height();    // Max height for the image
     ratio = 0;  // Used for aspect ratio
     width = $(this).width();    // Current image width
     height = $(this).height();  // Current image height

固定:

 var $this = $(this),
     maxWidth = $(this).parent().width(), // Max width for the image
     minHeight = $(this).parent().height(),    // Max height for the image
     ratio = 0,  // Used for aspect ratio
     width = $(this).width(),    // Current image width
     height = $(this).height();  // Current image height