jQuery的开放形象

问题描述:

我有以下的html:jQuery的开放形象

<li><a href="#" filename="prettygirls_1"><img src="large/prettygirls_1.jpg" alt="Pretty Girls Doing Horrid Things" /></a></li> 
<li><a href="#" filename="prettygirls_2"><img src="large/prettygirls_2.jpg" alt="Pretty Girls Doing Horrid Things" /></a></li> 

我尝试写一些jQuery的,将文件名特性传递到一个变量,然后在打开一个大版本的源文件新窗户。

我的jQuery看起来是这样的(我知道这是不正确的):

$('div#slider ul li a').click(function() { 
    var img_to_load = $(this).attr('filename'); 
    filePath = 'large/'; 
    $('<a href=" ' + filePath + img_to_load + '.jpg' + 'target="_blank"' + '</a>').html(); 
    //alert (img_to_load); 
}); 

如何构建呢?

所有的代码实际上是可以在这里找到:http://dev.jessicaharby.com/work/tempindex.cfm

+1

试'窗口。打开()' – Christoph 2012-07-09 10:28:13

试试这个:

JS:

window.open(filePath + img_to_load + '.jpg', '', 'width=640,height=480'); 

变化的宽度和高度,以适应,或者如果你不能指定一个确切的宽度和高度,只需使用

window.open(filePath + img_to_load + '.jpg'); 

请参阅window.open - MDN

因为它在click事件中打开,只要打开的URL位于同一个域中,它就不会被弹出窗口阻止程序阻止。

+0

谢谢,这似乎已经做到了。 – lharby 2012-07-09 11:03:52

我建议:

$('ul li a').click(function(e) { 
    // prevents the default action of the link's click-event ('e'), above 
    e.preventDefault(); 
    // finds the 'img' element within the 'a', using 'find()` 
    // and converts that, using '[0]' to a plain DOM node 
    // and retrieves the full, absolute, 'src' from that element 
    var img_to_load = $(this).find('img')[0].src, 
     imgWindow = window.open(img_to_load, 'imgWindow'); 
});​ 

JS Fiddle demo

上面的操作会将随后点击的图像打开到同一窗口中(用新图像元素重新打开已打开的窗口),因为它将首先查看是否有一个打开的窗口具有相同的名称(在本例中为'imgWindow'window.open()函数中的第二个参数),如果存在,则重新使用它。否则,它会打开一个名称的窗口。

如果您希望图像在自己的窗口,每一次打开,只是省略该参数,简单地使用:

$('ul li a').click(function(e) { 
    e.preventDefault(); 
    var img_to_load = $(this).find('img')[0].src, 
     imgWindow = window.open(img_to_load); 
});​ 

JS Fiddle demo

参考文献:

现在,上述查询的解决方案已由codebins提供。因此,尝试在http://codebins.com/codes/home/4ldqpb5

$(function() { 
    $('div#slider ul li a').click(function(e) { 
     e.preventDefault(); 
     var imageWin; 
     var imageUrl = $.trim($(this).attr('filename')), 
      imageWin = window.open(imageUrl); 

    }); 
}); 

试试这个:

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>jQuery demo</title> 
    <script src="jquery-1.9.1.js"></script> 
</head> 
<body> 
<script> 
$(document).on("click", "#btn", function(event) { 
    window.open("http://www.google.com", '_blank'); 
}); 
</script> 
<input type=button name="btn" id="btn"> 
</body> 
</html>