jQuery效果选择器现在和将来没有事件

时间:2012-02-26 19:04:51

标签: jquery

以下是我尝试做的一个示例用法:

  $('img.switchToPng').each(function(){
       currentSRC = $(this).attr('src');
       $(this).attr('src', currentSRC.substr(0, currentSRC.length -3) + 'png');
  });

稍后使用ajax在dom中出现一个新的<img src="path/image.jpg" alt="blah" class="switchToPng" />,我希望不需要重新运行选择器和每个函数。 jQuery中的.on选择器可以存在于未来,但是如果没有事件我找不到使用它的方法。我可以使用'load'事件,但这不可靠,因为浏览器缓存可能会阻止它被触发。

如果可以,我可以看到很多用途。有谁知道这个问题的答案很好吗?

1 个答案:

答案 0 :(得分:2)

您有三种选择:

  1. 轮询创建新元素。 [Example]
  2. 修改插入新元素的(jQuery)方法:

    var originalAppend = jQuery.fn.append;
    jQuery.fn.append = function() {
        // Function logic...
        return originalAppend.apply(this, Array.prototype.slice.call(arguments));
    };
    
  3. 使用弃用的DOM mutation方法。