用javascript写了一个树状组件,mouseover出现的元素没法和click事件绑定,应该如何解决?

 hro5028136 发布于 2022-11-15 20:55

https://yisha0307.github.io/I...

上面是我写的demo~有个问题是我mouseover的时候后面会出现一个x和一个+,然后我把click事件绑在上面,用的是

$('body').on('click','.fa-times',dele)

dele表示的是一个window.prompt的function;然而我无法click到这个元素,为什么呢?

这是我的js代码:
https://github.com/yisha0307/...

html:
https://github.com/yisha0307/...

应该要怎么修改呢?谢谢各位!

3 个回答
  • html:
    每项后面都先加上, 不要每次移入移出都要操作dom

    <i id="special" class="fa fa-folder-open" aria-hidden="true"></i>
    

    js:

    var showicon = function(){
       $(this).find(".fa").show();
    }
    
    var hideicon=function(){
       $(this).find(".fa").hide();
    }
    

    css:

    .fa{
        display:  none;
    }
    

    还有像楼上说的, 不是不建议用span 绑定, 是不能用. 建议题主多了解HTML语义化

    2022-11-15 21:03 回答
  • 动态添加到DOM的元素(比如你的fa-times是动态添加的吧?),使用on()时要绑定到document对象上。
    这样试试:

    $(document).on('click','.fa-times',dele);
    2022-11-15 21:03 回答
  • 我认为是这里的问题:

    $('body').on('mouseover','span',showicon);
    $('body').on('mouseout','span',hideicon);

    可以改成这样试试:

    $('body').on('mouseenter','span',showicon);
    $('body').on('mouseleave','span',hideicon);

    而且,不建议直接使用span来绑事件,最好使用class

    2022-11-15 21:03 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有