无法使用javascript插件在第一次运行时加载实际图像大小(图像在刷新后加载)
我正在使用javascript插件对图像进行注释。我无法在第一次运行时加载精确大小的图像,但在刷新页面时它会工作。当我在下面的代码中尝试在函数内部执行window.onload时,它会加载图像,但会删除注释无法使用javascript插件在第一次运行时加载实际图像大小(图像在刷新后加载),javascript,jquery,image,html5-canvas,Javascript,Jquery,Image,Html5 Canvas,我正在使用javascript插件对图像进行注释。我无法在第一次运行时加载精确大小的图像,但在刷新页面时它会工作。当我在下面的代码中尝试在函数内部执行window.onload时,它会加载图像,但会删除注释 <script type="text/javascript"> $(document).ready(function() { $.ajax({ url..... success:function(data){
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
url.....
success:function(data){
//adding data to div
$("#imgID").append($("<img src="" id="" />"));
//then calling this method
function annotateAllImages(id) {
$(window).load(function() {
$("#"+id).annotateImage({
getUrl: id+'/getAnnotationData',
saveUrl: id+'/saveData',
deleteUrl: id+'/deleteData',
editable: true,
useAjax: true,
});
});
}
</script>
$(文档).ready(函数(){
$.ajax({
url。。。。。
成功:功能(数据){
//向div添加数据
$(“#imgID”)。追加($(“”);
//然后调用这个方法
函数注释所有图像(id){
$(窗口)。加载(函数(){
$(“#”+id).注释图像({
getUrl:id+'/getAnnotationData',
saveUrl:id+'/saveData',
deleteUrl:id+'/deleteData',
是的,
是的,
});
});
}
我尝试对完整的脚本执行$(window).load(function(){),但仍然不起作用。画布的创建和内容都是在我使用的插件中完成的。非常感谢任何帮助。这个问题可以通过对每个图像分别应用
$.load
函数中的所有图像编辑来解决
这是因为每个元素的源标记都是在ajax调用后动态设置的,因此每个图像都需要更多的异步时间
作为参考,代码段如下所示:
function annotateAllImages(id) {
$("#"+id).load(function(){
$(this).annotateImage({
getUrl: id+'/getAnnotationData',
saveUrl: id+'/saveData',
deleteUrl: id+'/deleteData',
editable: true,
useAjax: true,
});
});
}
您可以添加调用annotateAllImages的位置吗?我怀疑您在ajax调用之外调用它,这意味着它可能会在所有图像加载之前运行。嗨,kaminari,我在ajax调用中添加了两个函数,一个用于将图像添加到div,然后我在ajax调用中调用一个函数,如下面的函数,这将调用notate AllImages var imgs=document.getElementsByTagName(“img”);AnnotateImageId(imgs);仅供参考这是代码下面是它在第一次运行时的外观,当我在初步浏览代码、库和图像后刷新它时,我注意到您没有使用$(window).load。库提到没有使用$(document).ready,而不是$(window).load。您是否尝试使用$(window).load来包装所有相关脚本,而不仅仅是annotateAllImages函数中的内容?也就是说,将$(document).ready替换为$(window).load。谢谢您的时间。