2013-03-19 52 views
3

我正在開展一個學校項目,只需點擊一次即可打開多個文檔。我正在使用圖像滑塊,並設法讓它打開多個鏈接。但是,一旦我將相同的JavaScript添加到滑塊上的另一個圖像上,它將像以前一樣打開相同的圖像,即使我已經對源代碼進行了加密。在Javascript中點擊一下即可打開3個項目

<img src="promo.png" img class="carousel-image" onclick="doOpen()"> 


    <script type="text/javascript"> 
function doOpen() 
{ 
window.open("Ticket.png"); 
window.open("Pattern.png"); 

} 
</script> 



      <div class="carousel-caption"> 
      <p> 
       The Complete set of useful documents 
      </p> 
      </div> 
     </div> 
     <div class="carousel-feature"> 
      <img src="promo.png" img class="carousel-image" onclick="doOpen()"> 

<script type="text/javascript"> 
function doOpen() 
{ 
window.open("screensaver.mp4"); 
window.open("Billboard.png"); 
window.open("Tshirt.png"); 


} 
</script> 

      <div class="carousel-caption"> 

滑塊上開ticket.pngpattern.png兩個圖像。

回答

2

您正在定義相同的功能doOpen兩次。這是行不通的。速戰速決試試這個:

<img src="promo.png" class="carousel-image" onclick="doOpen1()"> 

<script type="text/javascript"> 
function doOpen1() 
{ 
    window.open("Ticket.png"); 
    window.open("Pattern.png"); 
} 
</script> 

     <div class="carousel-caption"> 
     <p> 
      The Complete set of useful documents 
     </p> 
     </div> 
    </div> 
    <div class="carousel-feature"> 
     <img src="promo.png" class="carousel-image" onclick="doOpen2()"> 

<script type="text/javascript"> 
function doOpen2() 
{ 
window.open("screensaver.mp4"); 
window.open("Billboard.png"); 
window.open("Tshirt.png"); 
} 
</script> 

這就是說,定義這樣的功能對於每一個環節是不是一個強大的解決方案。什麼更妙的是:

<script type="text/javascript"> 
function doOpen(which) 
{ 
    if(which == "one"){ 
     window.open("Ticket.png"); 
     window.open("Pattern.png"); 
    } else if (which == "two"){ 
     window.open("screensaver.mp4"); 
     window.open("Billboard.png"); 
     window.open("Tshirt.png"); 
    } 
} 
</script> 

<div class="carousel-feature"> 
    <img src="promo.png" class="carousel-image" onclick="doOpen('one')"> 
</div> 

<div class="carousel-feature"> 
    <img src="promo.png" class="carousel-image" onclick="doOpen('two')"> 
</div> 

這將只需要你保持一個功能VS然而,許多爲每個鏈接你。

此外,你必須在你的代碼中的多餘img

<img src="promo.png" img class="carousel-image" onclick="doOpen2()"> 
        ^^^ Here 
<!-- Should Be: --> 
<img src="promo.png" class="carousel-image" onclick="doOpen2()"> 

由Jason建議的選項應該是這樣的:

<script type="text/javascript"> 
function doOpen() 
{ 
    for (var i = 0; i < arguments.length; i++){ 
     window.open(arguments[i]); 
    } 
} 
</script> 

<div class="carousel-feature"> 
    <img src="promo.png" class="carousel-image" onclick="doOpen('Ticket.png', 'Pattern.png')"> 
</div> 

<div class="carousel-feature"> 
    <img src="promo.png" class="carousel-image" onclick="doOpen('screensaver.mp4', 'Billboard.png','Tshirt.png')"> 
</div> 

這裏的區別是,你的函數永遠不會改變,但你每次都調用它不同。

+0

我會直接將鏈接附加到'',感覺更多的是HTML,將doOpen(which)改爲讀取參數對象,onClicks改爲'onclick =「doOpen('screensaver.mp4' ,'Billboard.png','Tshirt.png')「'這會讓這個更加可接受的 – 2013-03-19 17:45:47

+0

@JasonSperske它使得該函數可重用,是的,但我不能忍受必須通過html挖掘更新這樣的東西。我會說這是一個6合1的案例,另一個是6個案例。不過,這是一個很好的建議。我會將其添加到我的答案。 – BinaryTox1n 2013-03-19 17:48:49

+0

對不起,延遲迴復,但謝謝!我修好了它。再次感謝。 – user2186955 2013-03-21 11:52:40

相關問題