2017-04-09 23 views
0

我試圖根據「數據激活」的數據屬性更改圖像的選擇。Javascript |將src更改爲數據屬性生效

當數據激活等於true時,它會將圖像更改爲表示該平臺已被選中,並且其他所有人都取消選擇僅顯示一個。

我現在的問題是,圖像正在通過當前被點擊的平臺,因此它將取消選中的圖像更改爲禁用的當前圖像,因此圖像失靈。

你可以在這裏看到... https://miotks.co.uk/register(我有一個自分配的證書)

這是我當前的代碼,我有它...

function checkState(obj, platform) { 
var checkActive = document.querySelectorAll("[data-active='true']"); 
var alreadyActive = checkActive.length; 

if (alreadyActive >= 2) { 
    for (var i = 0; i < checkActive.length; i++) { 

     // Reset the images to the default when all changed to false. 
     checkActive[i].setAttribute('data-active', 'false'); 
     checkActive[i].setAttribute('src', '/images/' + platform + '-noselect.png'); 

     obj.setAttribute('data-active', 'true'); 
     obj.setAttribute('src', '/images/' + platform + '-select.png'); 
    } 
} else { 

}} 

它法官的長度一旦超過或等於2,選擇多少個元素並且具有「真」,然後它們全部被重置並且應該改變爲當前的元素。

這是怎麼了呼籲點擊事件的函數...

checkState(this, 'steam'); 
+0

該網址返回403錯誤。 – JLRishe

+0

@JLRishe現在嘗試,對不起。 – cmiotk

回答

1

它看起來像你可以改變-select-noselect中的每個圖像的URL:

function checkState(obj, platform) { 
    var checkActive = document.querySelectorAll("[data-active='true']"); 
    var alreadyActive = checkActive.length; 

    if (alreadyActive) { 
     for (var i = 0; i < checkActive.length; i++) { 
      // Reset the images to the default when all changed to false. 
      checkActive[i].setAttribute('data-active', 'false'); 
      checkActive[i].src = checkActive[i].src.replace('-select', '-noselect'); 
     } 
    } 

    obj.setAttribute('data-active', 'true'); 
    obj.src = obj.src.replace('-noselect', '-select'); 
} 
+0

但是當我點擊其他圖像時,它不會取消選擇當前不活動的圖像。 – cmiotk

+0

@cmiotk如果我已經理解了你的問題,我相信你想取消選擇除點擊之外的所有圖像。我錯了嗎? – JLRishe

+0

這是正確的,但使用您提供的代碼無法實現此目的。相反,它只是將圖像設置爲活動狀態而不是禁用狀態 – cmiotk