我正在尝试预加载一些图像。在循环中,我创建了img节点:
var imgP = $('<img id="imgP_' + i + '">');
imgP.on('load', function() {
alert("Loaded: " + $(this).attr('src'));
$("#view1").queue( function() {
// determine where/how to display the image
alert("DEQUEUED: " + imgP.attr('src'));
});
});
imgP.attr('src',unviewedFiles[i]);
第一个('Loaded')警报被触发,所以我假设最里面的函数已被放在fx队列中。我有一个单击处理程序,我在哪里出队:
function handleViewClick(event){
$("#view1").dequeue(); // analyze and report on click.
alert("image clicked @(" + event.clientX + "," + event.clientY +
}
但是,虽然触发了点击处理程序中的警报,但其他警报却没有。这是我第一次尝试这个,但我认为出列将采用先前已经排队并运行它的功能。
有人可以帮忙吗?感谢。
答案 0 :(得分:0)
问题是此代码位于动态加载的jquery选项卡中的页面上。当函数为enQ时,$(&#34;#view1&#34;)并不存在。如果&#34;#view1&#34;取而代之的是&#34; body&#34;它有效。