当前位置: 首页 > 面试题库 >

动态加载图像的JQuery .on()事件处理程序用法

司空思聪
2023-03-14
问题内容

我的页面是通过ajax响应动态生成的。

每个响应都有一个img具有指定ID 的元素。我需要它们在加载时淡入。

.load().bind('load')在第一次加载页面时正常工作。但是肯定不能在下一个响应中工作。

$('#my_img').load(function(){
   $(this).hide().fadeIn('slow');
});

所以我需要使用.on()事件处理程序。但是不起作用。

$('body').on('load','#my_img',function(){
   $(this).hide().fadeIn('slow');
});

注意:这不是缓存问题。Img src也有一个随机查询字符串。


问题答案:

onload事件不会冒泡,因此您无法委托它。但是,如果您不需要支持IE8 <,则可以捕获事件,它适用于任何动态img:

document.body.addEventListener(
    'load',
    function(event){
        var elm = event.target;
        if( elm.id === 'my_img'){ // or any other filtering condition
            // do some stuff
        }
    },
    true // Capture event
);

-演示-



 类似资料:
  • 我有一个vanilla javascript系统在下拉菜单上触发“更改”事件: 它可以通过addEventListener()或$('select').on()完美地处理事件,但如果.on()函数被设置为目标动态元素,它就不起作用了: 我错过了什么?

  • 我的react中有一个滚动的事件处理程序,我正试图使它成为被动的。但它不起作用,我在控制台中不断收到以下警告: 将事件处理程序标记为“被动”以使页面更加响应。 下面是我阅读事件的地方: 这是我的EventContainer中的函数。js文件: 在这一行: {被动:被动} 我得到以下错误在我的编辑器: 参数类型{passive:boolean}不可分配给参数类型boolean 有人知道我做错了什么吗

  • 我试图从子文件夹加载fxml,但失败了。我有做替换场景内容的行: 谢谢

  • 问题内容: Java(使用Net Bean)中类似于C#中的From_Load的事件处理程序是什么? 问题答案: 如果使用的是Swing的JFrame,请尝试使用addWindowListener(从java.awt.Window继承) 侦听器的windowOpened方法看起来像您想要的位置…

  • 事件就是用户或浏览器自身执行的某种动作。诸如click、load 和mouseover,都是事件的名字。而响应某个事件的函数就叫做事件处理程序(或事件侦听器)。事件处理程序的名字以"on"开头,因此click 事件的事件处理程序就是onclick,load 事件的事件处理程序就是onload。为事件指定处理程序的方式有好几种。 13.2.1 HTML事件处理程序某个元素支持的每种事件,都可以使用一

  • 问题内容: 是否可以在运行时加载特定的程序包?我想要一种插件,每个插件具有与其他插件相同的功能,但行为不同,并根据配置文件加载一个或另一个。 问题答案: 您可能会考虑在运行时执行“插件”程序包,方法是编写一个新程序(例如到temp目录),然后通过exec.Command执行,类似于 您将在此处看到一些类似的代码。