2015-06-10 50 views
0

我有一块使用Javascript/jQuery的的是一个事件监听,等待元素加载:有没有一种方法可以让我检查一个元素在if语句中没有被“加载”?

$("#download-iframe").on("load", function() { 

    alert("Download iframe loaded. src attribute value: " + $(this).attr("src")); 
}); 

眼下此警报将在src属性弹出一旦脚本完成加载/运行。

我想显示一个缓慢递增的排序进度条,但我希望它只在$("#download-iframe")元素尚未加载的情况下才进行排序。

有没有办法检查if语句,如果该元素被加载或没有?

function showProgress() { 

    var oneMinute = 60000; // One minute in milliseconds 
    var maxTime = 10 * oneMinute; // Maximum time in minutes, 10 minutes 
    var progress = 5; 
    var increment = 5; 

    $("#show-progress").attr("aria-valuenow", increment); 
    $("#show-progress").css("width", increment + '%'); 

    var scriptProgress = setInterval(function() { 

     progress += increment; 
     if (progress <= 100 && /* ALSO CHECK FOR ELEMENT NOT YET LOADED HERE */) { 

      $("#show-progress").attr("aria-valuenow", progress); 
      $("#show-progress").css("width", progress + '%'); 
     } 
     else { 

      $(".progress").addClass("hidden"); 
      clearInterval(scriptProgress); 
     } 

    }, oneMinute/10); 

} 

我正在使用twitter bootstrap的进度条。正在运行的src脚本是不是上传/下载的POST ajax URL,所以我无法使用AJAX progress eventListener。我想给用户一些事情的外观,某种反馈。

如果在进度条逐步达到100%之前加载iframe src,我希望它跳到100%,然后显示PHP脚本的结果。

任何建议将不胜感激。

回答

3

为什么不load()

var loaded = false; 
$("#download-iframe").on("load", function() { 
    loaded = true; 
    alert("Download iframe loaded. src attribute value: " + $(this).attr("src")); 
}); 

设置一个标志,然后在if声明

if (progress <= 100 && loaded) 
+0

我可能在我的脚本的其他问题我发现。我会尽力将其标记为正确/只要我修正了扭结,它就会起作用! –

+0

@MaggieB。 ,如果问题可能与我的解决方案有关,请告诉我,以便我们可以尝试解决。问题是什么?例外? – AmmarCSE

+0

我的加载函数警报不再弹出。在我看到您的回复之前,我在一分钟内做了其他一些按钮混搭,所以它可能与此相关。 在控制台或其他方面没有错误,只是在保存文件弹出窗口之前不再有任何提醒。 –

相关问题