img preloading,queue&出队

时间:2014-12-31 20:12:50

标签: jquery

我正在尝试预加载一些图像。在循环中,我创建了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 +
}

但是,虽然触发了点击处理程序中的警报,但其他警报却没有。这是我第一次尝试这个,但我认为出列将采用先前已经排队并运行它的功能。

有人可以帮忙吗?感谢。

1 个答案:

答案 0 :(得分:0)

问题是此代码位于动态加载的jquery选项卡中的页面上。当函数为enQ时,$(&#34;#view1&#34;)并不存在。如果&#34;#view1&#34;取而代之的是&#34; body&#34;它有效。