这是我想要做的示例用法:
$('img.switchToPng').each(function(){
currentSRC = $(this).attr('src');
$(this).attr('src', currentSRC.substr(0, currentSRC.length -3) + 'png');
});
后来使用ajax新建了一个<img src="path/image.jpg" alt="blah" class="switchToPng" />
出现在 dom 中,我希望不需要重新运行选择器和每个函数。与.on
jQuery 中的选择器可以在未来使用,但是我找不到在没有事件的情况下使用它的方法。我可以使用'load'
事件,但这并不可靠,因为浏览器缓存可能会阻止该事件的触发。
如果这是可能的,我可以看到很多用途。有人知道这个问题的好答案吗?
最佳答案
您有三个选择:
- 轮询新元素的创建。 [Example]
修改插入新元素的 (jQuery) 方法:
var originalAppend = jQuery.fn.append; jQuery.fn.append = function() { // Function logic... return originalAppend.apply(this, Array.prototype.slice.call(arguments)); };
- 使用已弃用的 DOM mutation方法。
关于jQuery 效果选择器现在和将来没有事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9456153/