Javascript 使用JQuery在图像上创建类

Javascript 使用JQuery在图像上创建类,javascript,jquery,Javascript,Jquery,现在,我正在尝试使用以下代码为横向图像添加一个类: $('.gallery img').each(function() { if ($(this).width() > $(this).height()) { $(this).addClass('landscape'); } }); 代码有时可以工作,但有时没有添加类,因此没有应用我使用的样式。我尝试过使用$document.ready函数和不使用$document.ready函数,并将其

现在,我正在尝试使用以下代码为横向图像添加一个类:

  $('.gallery img').each(function() {
    if ($(this).width() > $(this).height()) {
      $(this).addClass('landscape');        
    }
  });

代码有时可以工作,但有时没有添加类,因此没有应用我使用的样式。我尝试过使用$document.ready函数和不使用$document.ready函数,并将其放在图像旁边,而不是放在代码的末尾,但是没有任何东西能够始终将该类添加到横向图像中。我不知道还能尝试什么。有什么建议吗?

还可以收听加载事件,因为某些图像可能未加载,因此具有未知的宽度/高度:

// Put this in your $(document).ready
function handleImage($image) {
  if ($image.width() > $image.height()) {
    $image.addClass('landscape');        
  }
}
$('.gallery img').each(function() {
  handleImage($(this));
}).load(function() {
  handleImage($(this));
});

请注意,如果事先知道尺寸,建议在图像标记上具有宽度和高度属性。添加这些属性将避免使用onload处理程序。

这只适用于宽度大于高度的图像。运行此操作时,图像是否已经在DOM中?@Dan,我很确定这就是所谓的景观。在检查尺寸之前,你应该先听一下事件。听起来好像高度和宽度不是你想象的那样。