我有一个仅在iOS上不触发输入和触摸或单击监听器的应用程序。我已经看过这些问题(虽然只是个麻烦……我不是不是使用jQuery):
jQuery click events not working in iOS
jQuery on click not working on iPhone (touch devices)
How do I use jQuery for click event in iPhone web application
还有更多...我学到的是以下内容:
我知道并没有覆盖任何元素,因为我已经向元素添加了:active伪类,只是为了确保 正常工作,以及何时创建了clickable元素。积极地,他们做了CSS告诉他们的事情。这是我添加事件监听器的方法:
const interactionEvent = function () {
const iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
return iOS ? 'touchstart' : 'click';
};
class SingleLeadInteraction {
constructor() {
const urlSearch = new URLSearchParams(window.location.search);
this.leadId = urlSearch.get("id");
this.addListeners();
}
addListeners() {
this.addNoteButton.addEventListener(interactionEvent(), e => { SingleLeadInteraction.addNoteModal.showModal(); }, false);
this.addAttachmentButton.addEventListener(interactionEvent(), e => { SingleLeadInteraction.addAttachmentModal.showModal(); }, false);
this.changeAgentButton.addEventListener(interactionEvent(), () => { SingleLeadInteraction.changeAgentModal.showModal(); }, false);
const leadDetailInputs = document.querySelectorAll(".field-container label input[data-api-name], .field-container label select[data-api-name]");
leadDetailInputs.forEach(input => {
input.addEventListener("input", e => {
// code that isn't firing
}, false);
});
}
}
SingleLeadInteraction.changeAgentModal = new Modal("#changeAgentModal");
SingleLeadInteraction.addNoteModal = new Modal("#addNoteModal");
SingleLeadInteraction.addAttachmentModal = new Modal("#addAttachmentModal");
let lead;
if (new URL(window.location.href).pathname === "/contact/") {
lead = new SingleLeadInteraction();
}
我首先从仅使用“ interactionEvent()”调用所在的“点击”或“ touchstart”开始,所以我已经尝试过了。
我只是不知道该怎么办。
为什么我的iOS事件监听器无法触发?
答案 0 :(得分:0)
添加光标:指针;到不可点击元素的CSS,可以使点击完全冒泡。
cursor: pointer;