2013-02-12 36 views
0

我想调用一个打开新链接的函数。我想在点击所有图片后执行此操作。我怎样才能做到这一点?当所有图像被点击时调用函数

HTML

<!DOCTYPE HTML> 
<html> 
<head> 
    <meta charset="windows-1252"> 
    <!--[if lt IE 9]> 
     <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"> </script> 
     <![endif]--> 
    <title>Date med mig - version b 
    </title> 
    <script type="text/javascript"> 
    function newWindow() 
    { 
     window.location = window.location = "http://www.tv3.se/datemedmig" 
    } 
    </script> 
</head> 
    <body> 
    <h1>Del 2: Date med mig</h1>  

    <img src="1_c.jpg" id="image1" onclick="this.src='1_o.jpg';" alt="image" /> 
    <img src="2_c.jpg" id="image1" onclick="this.src='2_o.jpg';" alt="image" /> 
    <img src="3_c.jpg" id="image1" onclick="this.src='3_o.jpg';" alt="image" /> 
    <img src="4_c.jpg" id="image1" onclick="this.src='4_o.jpg';" alt="image" /> 

    </body> 
</html> 
+0

你到目前为止试过了什么?您的问题目前的形式太宽泛,无法在Stack Overflow上获得许多有用的回复。 – dgvid 2013-02-12 22:16:40

+0

我真的无法知道在哪里以及如何调用我的函数newWindow(),以便它在每个图像被点击后被调用。 – DrWooolie 2013-02-12 22:17:37

+1

顺便说一句,具有相同的ID为多个元素是坏主意,并要求麻烦。 – Infinity 2013-02-12 22:18:46

回答

2

如果你想只需要加载一个新的窗口,只要任何图像被点击,我认为@runfaj说这样做的方式可能是最好的,这是我的理解,你只有在所有图像被点击后才想要做到这一点?

如果是这样的话,这里有一个选项(这可能不是最有效的)

//Assuming there are 4 images 
var hasBeenClicked = [false,false,false,false] 

//To be called when each image is clicked 
function imageClicked(whichImage){ 

    this.src = "'"+whichImage+"_o.jpg'" 

    //set this position in the array equal to true 
    hasBeenClicked[whichImage] = true 

    // if the array is completely true (every image has been clicked) 
    // call the newWindow function 
    if(hasBeenClicked == [true,true,true,true]){ 
      newWindow(); 
    } 

} 

然后,当你创建一个图像:

<img src="1_c.jpg" id="image1" onclick="imageClicked(1);" alt="image" /> 
+0

我应该怎么称呼它,因为我已经在使用onclick? – DrWooolie 2013-02-12 22:30:28

+0

image,这是我如何调用函数,但它不会工作? – DrWooolie 2013-02-12 22:36:31

+0

现在编辑功能... – Cabbibo 2013-02-12 22:38:42

0

可以做到这三个方面:

的jQuery:

$('img').click(newWindow); 

在线:

<img src=..... onclick="newWindow()" /> 

常规的JavaScript:

得到所有的标签用:

var imgs = document.getElementByTagName('img'); 

然后添加一个事件侦听器,每次1片(谷歌它为许多不同的例子)

0

有触发了一个onclick功能每个图像在图像标签上设置一个新的属性。然后对所有图像运行循环以检查它们是否都有标签。如果是这样,请打开新窗口。例如:

$('img').click(function() { 
    $(this).data('was-clicked', true); 

    var all_clicked = true; 
    $('img').each(function() { 
     if($(this).data('was-clicked') != true) { 
      all_clicked = false; 
      break; 
     } 
    }); 

    if(all_clicked == true) newWindow(); 
}); 

请注意,此代码未经测试,可能存在语法/语义错误。此外,您可能不希望用户点击所有图片标记(例如横幅,背景等),因此您应该修改jquery选择器以仅过滤您感兴趣的'img'标记,例如$('#my-gallery img')...

+0

谢谢你,但解决方案应该是在纯粹的JavaScript,没有jQuery。 – DrWooolie 2013-02-13 08:37:12

相关问题