Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何找到正确的答案?_Javascript_Jquery - Fatal编程技术网

Javascript 如何找到正确的答案?

Javascript 如何找到正确的答案?,javascript,jquery,Javascript,Jquery,我正在尝试在图像加载之前获取图像高度和宽度,并通过js进行设置,我正在运行以下操作: $("img").each(function() { var mySizes = $(this); getImageSize($("img"), function(width, height){ mySizes.width(width).height(height); }); }); function get

我正在尝试在图像加载之前获取图像
高度
宽度
,并通过
js
进行设置,我正在运行以下操作:

      $("img").each(function() {
        var mySizes = $(this);
        getImageSize($("img"), function(width, height){
          mySizes.width(width).height(height);
        });
      });
      function getImageSize(img, callback) {
        var $img = $(img);
        var wait = setInterval(function() {
          var w = $img[0].naturalWidth,
              h = $img[0].naturalHeight;
          if (w && h) {
              clearInterval(wait);
              callback.apply(this, [w, h]);
            }
        }, 30);
      }
    });

但是我对使用
这个
感到困惑,并且相同的大小似乎适用于所有您的问题是您正在将
$('img')
传递到
getImageSize()
函数。这将获得文档中的所有图像。然后使用
$img[0]
,以便将大小应用于所有图像中的第一个图像

相反,您希望将此
传递给
getImageSize()

这意味着您将只传入正在处理的当前图像
each()
将为页面上的每个图像调用一次,您将一次处理一个图像


您也可以使用
mySizes
而不是那里的
this
,但由于您在其他函数中用
$()
将其封装,因此
mySizes
是多余的。我会舍弃这个变量。

您的问题是将
$('img')
传递给
getImageSize()
函数。这将获得文档中的所有图像。然后使用
$img[0]
,以便将大小应用于所有图像中的第一个图像

相反,您希望将此
传递给
getImageSize()

这意味着您将只传入正在处理的当前图像
each()
将为页面上的每个图像调用一次,您将一次处理一个图像


您也可以使用
mySizes
而不是那里的
this
,但由于您在其他函数中用
$()
将其封装,因此
mySizes
是多余的。我会舍弃这个变量。

getImageSize($(“img”)
您再次选择图像时使用:
getImageSize(mySizes,
您甚至没有使用
this
,因此在这种情况下传递给它的内容无关紧要。事实上,您甚至不需要
调用
函数,只需调用
回调(w,h)
@Occam'sRazor这个问题已经解决了,但我对你的方法很感兴趣,你能把它放到一个答案中吗?谢谢我的评论与问题无关,它不是一个答案,它只是对你得到的一些毫无意义的代码的评论,而问题与“纠正这个”无关正如标题所示。
getImageSize($(“img”)
您再次选择图像时使用:
getImageSize(mySizes,
您甚至没有使用
this
,因此在本例中传递给它的内容无关紧要。事实上,您甚至不需要调用
函数,只需调用
回调(w,h)
@Occam'sRazor这个问题已经解决了,但我对你的方法很感兴趣,你能把它放到一个答案中吗?谢谢我的评论与问题无关,它不是一个答案,它只是对你得到的一些毫无意义的代码的评论,而问题与“纠正这个”无关如标题所示。好的,是的,实际上根据注释,我应该使用
getImageSize(mySizes,
),但是是的,你是对的。如果这是答案,请打勾将其标记为正确答案。好的,是的,实际上根据注释,我应该使用
getImageSize(mySizes,
但是是的,您是正确的。如果答案是正确的,请点击复选标记将其标记为正确答案。
$("img").each(function() {
  var mySizes = $(this);
  getImageSize(this, function(width, height) {
    mySizes.width(width).height(height);
  });
});