2017-10-08 64 views
0

編程相當新穎,只能在Javascript中使用(到目前爲止)。我正在建立一個網站,您可以點擊圖片。它在個人電腦,Mac和Android智能手機上都有魅力,但是當我在iPad(Chrome)和iPhone(包括Chrome和Safari)上試用時,某些點擊不會觸發這些功能。這是個常見的問題嗎?我添加事件監聽器如下。Javascript的行爲與觸摸不同

document.getElementById("displayRight" + count).addEventListener("click", triggerRight); 

的功能是這樣的:

function triggerRight() { 

var compare = activeElement; 
getIdRight(); 
if (compare === activeElement) { 

    slideIndex = slideIndex + 1; 
} else { 
    slideIndex = 2; 
} 

slidePic(); 
} 

function slidePic() { 

var i; 
var x = document.getElementsByClassName("mySlides" + activeElement); 

if (slideIndex > x.length) { 
    slideIndex = 1; 
} 

if (slideIndex < 1) { 
    slideIndex = x.length; 
} 

for (i = 0; i < x.length; i++) { 
    x[i].style.display = "none"; 
} 

x[slideIndex - 1].style.display = "block"; 
} 
+0

,我收到了類似的問題,這個答案幫我解決它在我的web應用程序:https://stackoverflow.com/問題/ 14795944/jquery-click-events-not-working-in-ios –

+0

它看起來像一個夢,但不會工作。我嘗試了'* {cursor:pointer;}'在我的CSS中,但無法讓它工作。你是如何解決它的? @ZachA –

+0

這篇文章深入探討了這個問題:https://www.quirksmode.org/blog/archives/2010/09/click_event_del.html它也列出了一個解決方法。光標:指針技巧似乎是一個廣泛使用的方法,但似乎它不起作用,如果您將樣式應用於:hover,所以我擔心使用*來設置它可能會對你有用。嘗試使用指針技巧對受影響的元素進行造型。否則,我不確定問題出現在哪裏,因爲它在其他操作系統上按預期工作。 –

回答

0

蘋果iOS使用 「觸摸」 事件。你可能想測試和抽象的點擊/觸摸事件,如下列:

var trgEvent = 'ontouchstart' in window ? 'touchstart' : 'click'; 

document.getElementById("displayRight" + count).addEventListener(trgEvent, triggerRight); 
+0

它看起來像一個很好的和非常邏輯的解決方案,不幸的是我不能得到它的工作。這些功能現在不會在電腦或手機上觸發。我將所有'click'切換到'trgEvent'。 @kenn –

+0

另外,'window'後的'?'是什麼意思? @kenn –

+0

這是if語句的簡寫(三元運算符):https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator @Django Joe –