Javascript 触摸/单击并输入事件侦听器不触发iOS

Javascript 触摸/单击并输入事件侦听器不触发iOS,javascript,ios,ecmascript-6,addeventlistener,Javascript,Ios,Ecmascript 6,Addeventlistener,我有一个应用程序,它不在iOS上启动输入和触摸或点击监听器。我已经看过这些问题(不过仅供参考…我没有使用jQuery): 还有更多……我学到的是: 将光标指针添加到元素完成。我所有未触发的可点击元素都具有cursor:pointer的CSS属性 内联单击侦听器尝试过,但没有效果 有点类似……将onclick=”“添加到元素中同上,尝试了一下,但没有效果 使用触摸式听众尝试过,但没有效果。这是我将要展示的当前实现。 我知道没有什么可以覆盖元素,因为我向元素添加了伪类:active,以确保它正

我有一个应用程序,它不在iOS上启动输入和触摸或点击监听器。我已经看过这些问题(不过仅供参考…我没有使用jQuery):

还有更多……我学到的是:

  • 将光标指针添加到元素完成。我所有未触发的可点击元素都具有cursor:pointer的CSS属性
  • 内联单击侦听器尝试过,但没有效果
  • 有点类似……将onclick=”“添加到元素中同上,尝试了一下,但没有效果
  • 使用触摸式听众尝试过,但没有效果。这是我将要展示的当前实现。
  • 我知道没有什么可以覆盖元素,因为我向元素添加了伪类:active,以确保它正常工作。当我激活可点击元素时,它们按照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()调用的地方使用“click”或“touchstart”,所以我已经尝试过了

    我只是不知道该怎么办


    为什么我的iOS事件侦听器没有启动?添加游标:指针;对于不可点击的元素,CSS允许点击完全冒泡

    cursor: pointer;
    
    多亏了


    添加光标:指针;对于不可点击的元素,CSS允许点击完全冒泡

    cursor: pointer;
    
    多亏了


    From Review:Hi,虽然链接是分享知识的好方法,但如果将来它们被破坏了,它们不会真正回答这个问题。在回答中添加回答问题的链接的基本内容。如果内容太复杂或太大而不适合此处,请描述建议解决方案的总体思路。请记住始终保留原始解决方案网站的链接引用。看:来自评论:嗨,虽然链接是分享知识的好方法,但如果将来它们被破坏了,它们不会真正回答这个问题。在回答中添加回答问题的链接的基本内容。如果内容太复杂或太大而不适合此处,请描述建议解决方案的总体思路。请记住始终保留原始解决方案网站的链接引用。见: