功能适用于非动态加载的图像

时间:2015-12-25 03:07:57

标签: javascript jquery html

FIDDLE:https://jsfiddle.net/m2barfho/

您好我有以下功能:

  var imgs = $('img');
  if ($(imgs).hasClass('cboxPhoto')) {
    imgs.each(function() {
      var img = $(this);
      if ($(img).width() > 1000 && $(img).height() > 1000) {
        img.addClass('relative');
      } 
      else {
        img.removeClass('relative');
      }
    });
  }

我基本上说明<img>是否有&#34; cboxPhoto&#34;然后运行each()函数来添加&#34; relative&#34;如果图像宽度大于x,则它的高度大于x。当HTML已经静态放置时,此功能正常工作。但是,这些图像是动态生成的,我已经尝试过

$('#body').load('index.html #cboxLoadedContent', function() {
}

$(document).ready(function () {} with .`load`

还尝试添加.on事件侦听器,即使我没有使用绑定事件来查看它何时加载它可能会检测到。

问题: 图像是通过上传模块动态生成的,而不是静态放置。由于某种原因Colorbox不会运行我的功能。图像具有类.cboxPhoto。如何让hasClass函数检测动态生成的图像,并运行前面的each()函数?它适用于我的小提琴,但不是我的索引?

1 个答案:

答案 0 :(得分:0)

您可以根据图像是否具有cboxPhoto类来选择图像,然后循环显示它们。

var imgs = $('img.cboxPhoto');
imgs.each(function() {
  var img = $(this);
  if (img.width() > 1000 && img.height() > 1000) {
    img.addClass('relative');
  } else {
    img.removeClass('relative');
  }
});

Fiddle