2017-03-20 63 views
0

我想使用JQuery创建一个弹出窗口来包含图像。点击链接时,窗口将显示。窗口的大小取决于图像大小。JQuery为图像创建弹出窗口,通过URL获取图像的大小

有几个链接。该链接目标是“_new”,所以链接被点击的情况下,jQuery是:

jQuery('a[target^="_new"]').click(function() { 

     return openWindow(this.href); 
    }); 

然后在弹出的功能将是:

function openWindow(url) { 
     width = $("img[src$='" + url + "']").width; 
     height= $("img[src$='" + url + "']").height; 
    window.open(url , 'newwindow', 'width=' + width + ', height=' + height); 
} 

当我调试,我发现网址是正确的。但是我无法通过它的URL获取图像元素(然后我无法获得它的宽度和高度来设置弹出窗口的大小)。任何人都可以帮助我解决这个问题?谢谢!

+0

问题可能是'.width'和'.height'之后缺少'()'。 jQuery对象没有这样的属性,试试这个'$(“img [src $ ='”+ url +“']”)。width()'and'$(“img [src $ ='”+ url +“ “]“)。高度()'。 – Hopeless

回答

0

的问题是,你只能计算图像后的宽度和高度上加载到浏览器内存

为了使它工作,你就必须在Load事件处理程序进行计算。

var img = $('<img src="'+ url +'"/>').load(function(){ 
    var width = this.width; 
    var height = this.height; 
}); 
+0

当它运行到'var img = $('').load(function()'时,它说'对象不支持属性或方法'indexOf'',这很奇怪,因为我从来不会调用这个方法。我正在使用.net aspx页面,这是原因吗? – DennisL