2016-03-31 110 views
0

我正在嘗試一個JavaScript,它需要一個圖像的Id,並執行一些函數的圖像onclick。但是我有多個相同圖像的Id,其中onclick圖像的id應該由JavaScript處理,並且應該執行操作。 問題是我無法根據點擊獲取正確的ID。多個Id對同一個JavaScript函數的調用

這裏是我的代碼

1)MYHTML

<div class="col-md-3 col-sm-6"> 
<div class="sub-process-block quantity"> 
    <h3>choose quantity</h3> 
    <div id="example" onclick="changeImage()"> 
     <img src="img/carton-empty.png" id="myImage"> 
     <img src="img/carton-empty.png" id="myImage1"> 
     <img src="img/carton-empty.png" id="myImage2"> 
    </div> 
</div> 

2)的JavaScript

<script> 
    function changeImage() { 
    var imageArray=["myImage","myImage1","myImage2"]; 
     for(var i=0;i<imageArray.length;i++){ 
     image = document.getElementById(imageArray[i]).onclick; 
     } 
     if(image.src.match("selected")) { 
     image.src="img/carton-empty.png"; 
     }else{ 
     image.src = "img/carton selected.png"; 
     } 
    } 

+0

你在使用Jquery嗎? –

+0

爲什麼你使用相同的ID多個對象? –

+4

你能告訴我們一些代碼嗎? –

回答

1

爲什麼不在JS中爲圖片添加事件偵聽器?然後,你可以,如果它的選擇或不檢查和更新源相應

// get all images and put them in an array 
var images = [].slice.call(document.querySelectorAll('img')); 

// loop through images and add event listener 
images.forEach(function(image) { 
    image.addEventListener('click', onImageClick); 
}); 

// on click, check if image is selected and update src 
function onImageClick(e) { 
    var image = e.target; 

    if (image.src.match("selected")) { 
    // is selected, now unselected it and update src 
    image.setAttribute('src', 'img/carton-empty.png'); 
    } else { 
    // is not selected, now select it and update src 
    image.setAttribute('src', 'img/carton selected.png'); 
    } 
} 

https://jsfiddle.net/0qzdsf8r/4/

檢查在開發工具的圖像元素和參考類和src變化。

+0

var images = [] .slice.call(document.querySelectorAll('img')); 這條線我應該添加圖像的ID像 var images = [「myImage」,「myImage1」,「myImage2」]。 –

+0

不,你不能。如果你真的需要通過ID獲取圖像,你應該編輯腳本一點,請參閱https://jsfiddle.net/0qzdsf8r/6/ – Pimmol

+0

非常感謝你..它工作 –

1

試試這個;)

function changeImage(){ 
    var imageArray = ["myImage", "myImage1", "myImage2"]; 
    for(var i = 0; i < imageArray.length; i++){ 
    var image = document.getElementById(imageArray[i]); 

    if(image.src.match("selected")){ 
     image.src = "img/carton-empty.png"; 
    }else{ 
     image.src = "img/carton selected.png"; 
    } 
    } 
} 

你把條件放在外面for循環;

+0

查看更新後的答案; – itzmukeshy7

+0

它選擇所有的圖像,但不完全是我點擊的圖像 –

相關問題