2017-02-13 74 views
2

我在我的網頁遊戲上實現庫存機制,我想稍微複雜一點。取消功能時被點擊目標div其他地方

爲了打開門,你需要找到boltcutters。當你找到它時,你需要點擊boltcutters,然後在一個鏈上打破它,這就是我工作的部分。 但我想實現某種功能,如果點擊boltcutters後我點擊任何地方,但在我要運行的功能取消鏈功能(變色)和顯示產業鏈「不能使用在這裏」味精爲例。

因此,在短期,我需要找到一個解決方案,(僞):

If(boltcutters_clicked){ 
if(clicked_on_chain){ 
openthedoor()} 
else { 
cancelBoltcutters()} 

這裏是我目前擁有的部分代碼,如果那幫助:

//鏈力學

var boltcutters_used = false; 
document.getElementById('item_boltcutters').onmousedown = function(){ 
    boltcutters_used = true; 
    document.getElementById('item_boltcutters').style.color = "red"; 
    document.getElementById('item_boltcutters').style.border = "1px solid red"; 
} 

var boltcutters_found = false; 
document.getElementById("chain").onmousedown = function(){ 
    if(boltcutters_used){ 
     alert('you open the door'); 
    } else if(!boltcutters_found){ 
     alert("I need to find something to break this chain...") 
    } else { 
     alert("Boltcutters could do the trick") 
    } 
} 

由於下面提到我想出了以下解決方案的理念:

var last_clicked = null; 
var test=0; 
window.onclick = function (e) { 
last_clicked = e.target; 

if(boltcutters_used == true){ 
    test++; 
} 
if(boltcutters_used == true && last_clicked !== document.getElementById("chain") && test >1){ 
    alert("Can't use it here"); 
    boltcutters_used = false; 
    test=0; 
} 

}

而且它的工作原理:)

回答

2

保持最後單擊項目

具有可變的last clicked元素

存儲在window click更新的價值變量

檢查這個變量在chain事件處理程序

var last_clicked = null; 
window.onclick = function (e) { 
    last_clicked = e.target; 
} 

var boltcutters_used = false; 
document.getElementById('item_boltcutters').onmousedown = function(){ 
    boltcutters_used = true; 
    document.getElementById('item_boltcutters').style.color = "red"; 
    document.getElementById('item_boltcutters').style.border = "1px solid red"; 
} 

var boltcutters_found = false; 
document.getElementById("chain").onmousedown = function(){ 
    if(boltcutters_used){ 
     if(last_clicked === document.getElementById("item_boltcutters")) { 
      alert('you open the door'); 
     } else { 
      alert("You should use the bolt cutters on this"); 
     } 
    } else if(!boltcutters_found){ 
     alert("I need to find something to break this chain...") 
    } else { 
     alert("Boltcutters could do the trick") 
    } 
} 
+0

謝謝,以瞭解它,我需要研究它一點點,因爲我只是在JS初學者,我會讓你知道是否奏效! –

+0

好吧,我研究它,瞭解它,我想,雖然它是有用的,我也會肯定使用該功能後它不解決我的問題,因爲我仍然無法達到我的目標,那就是當比其他地方點擊顯示「不能在這裏使用它」在鏈上。我需要類似「if next_clicked!= chain」等等。 –

+0

解決了它,感謝您的想法,但如果您想查看,請修改主帖子,謝謝! –