【问题标题】:Attached event listener on mouseover鼠标悬停时附加事件侦听器
【发布时间】:2016-09-19 01:55:48
【问题描述】:

我对 Javascript 非常陌生,正在尝试将匿名函数附加到事件侦听器。该函数的作用是当mouseover第一个元素时,会根据第一个元素中文本的长度,在第二个元素中显示一条消息。

但是,当我将鼠标悬停在第一个元素上时,什么也没有发生。因为我是 JavaScript 新手,所以我不确定我做错了什么。

    function checkLength(event, minLength){
        var el, elementTwo;
        el = event.target;
        elementTwo = el.nextSibling;
        
        if(el.value.length < minLength){
            elementTwo.innerHTML = "not enough";
        } else {
            elementTwo.innerHTML = "enough";
        }
    }
    
    var elUserName = document.getElementById("one");
    elUserName.addEventListener("mouseover", function(event){
        checkLength(event, 5);
    }, false);
    <div>
        <div id="one">Bob</div>
        <div id="two"></div>
    </div>

【问题讨论】:

    标签: javascript html events dom-events mouseevent


    【解决方案1】:

    要访问您使用textContent 的元素的textvalue 用于输入。

    此外,您需要选择下一个元素兄弟,而不仅仅是下一个兄弟节点。

    function checkLength(event, minLength){
            var el, elementTwo;
            el = event.target;
            elementTwo = el.nextElementSibling;
            
            if(el.textContent.length < minLength){
                elementTwo.innerHTML = "not enough";
            } else {
                elementTwo.innerHTML = "enough";
            }
        }
        
        var elUserName = document.getElementById("one");
        elUserName.addEventListener("mouseover", function(event){
            checkLength(event, 5);
        }, false);
    <div>
            <div id="one">Bob</div>
            <div id="two"></div>
        </div>

    【讨论】:

    • 非常感谢您的帮助!请问,你是怎么知道答案的?只是下次遇到这样的问题,真希望自己能解决。再次感谢您的帮助!
    • 好吧,我根据自己的经验解决了这个问题,但是当我遇到问题时,我在调试应用程序之前还没有看到或处理过这些问题。找到问题的答案通常不是最难的事情,找到真正的问题通常是最难的。
    • 感谢您分享您的智慧,再次感谢您的帮助!真的很感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-08
    • 1970-01-01
    • 2020-06-03
    相关资源
    最近更新 更多