Javascript的行为与触摸不同
编程相当新颖,只能在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";
}
苹果iOS使用 “触摸” 事件。你可能想测试和抽象的点击/触摸事件,如下列:
var trgEvent = 'ontouchstart' in window ? 'touchstart' : 'click';
document.getElementById("displayRight" + count).addEventListener(trgEvent, triggerRight);
它看起来像一个很好的和非常逻辑的解决方案,不幸的是我不能得到它的工作。这些功能现在不会在电脑或手机上触发。我将所有'click'切换到'trgEvent'。 @kenn –
另外,'window'后的'?'是什么意思? @kenn –
这是if语句的简写(三元运算符):https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator @Django Joe –
,我收到了类似的问题,这个答案帮我解决它在我的web应用程序:https://*.com/问题/ 14795944/jquery-click-events-not-working-in-ios –
它看起来像一个梦,但不会工作。我尝试了'* {cursor:pointer;}'在我的CSS中,但无法让它工作。你是如何解决它的? @ZachA –
这篇文章深入探讨了这个问题:https://www.quirksmode.org/blog/archives/2010/09/click_event_del.html它也列出了一个解决方法。光标:指针技巧似乎是一个广泛使用的方法,但似乎它不起作用,如果您将样式应用于:hover,所以我担心使用*来设置它可能会对你有用。尝试使用指针技巧对受影响的元素进行造型。否则,我不确定问题出现在哪里,因为它在其他操作系统上按预期工作。 –