Sar*_*pps 4 jquery load dynamic-html
我将图像动态添加到页面中,我似乎无法使用live()动态地使用'load'事件.
这是我目前的代码:
$('#largeImg' + nextUniqueItemID).hide();
$('#largeImg' + nextUniqueItemID).live('load' , function() {
$('#loader' + nextUniqueItemID).hide();
$('#largeImg' + nextUniqueItemID).show();
});
Run Code Online (Sandbox Code Playgroud)
同'#largeImg' + nextUniqueItemID之处在于加入到页面早些时候功能的图像和'#largeImg' + nextUniqueItemID被加载图像.
我觉得好像我可能会滥用"直播",因为它不需要听众,而是立即触发事件.
感谢你的帮助.我试过"绑定"而且从未触发过.我也尝试消除负载,但这不起作用.有没有办法将一个监听器附加到一个事件,指示图像何时加载?
我认为jQuery文档在这个问题上可能会有点误导,除非它正在做一些非常特殊的事情来解决这个问题.
由于它们没有冒泡,因此document不知道是否已触发加载事件.
因为document不了解load事件,live会渲染无用,因为live依赖于冒泡到文档的事件,一旦它们这样做,它就会将事件目标与它已存在的文件中的选择器匹配,如果匹配,为该元素触发事件处理程序.
例如,假设您要注册以下直播活动:
$("#container > input").live("change", function() {
alert("changed");
});
Run Code Online (Sandbox Code Playgroud)
然后jQuery将在文档对象上添加一个更改事件监听器(如果它尚不存在)(类似于):
$(document).bind("change", function() {
..
});
Run Code Online (Sandbox Code Playgroud)
当任何更改事件冒泡到文档时,它会遍历每个已注册的选择器,并检查给定选择器的任何结果节点是否包含事件目标(事件源自的元素).如果它存在,则为该事件目标触发相应的"实时"事件处理程序.
如果文件首先不知道该事件,那么这一切都不可能.
除非我弄错了并且jQuery有一些秘密的做法,你应该直接绑定load事件而不是通过live来实现它.
$("selector").bind("load", function() { .. });
Run Code Online (Sandbox Code Playgroud)