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

阅读 2.8k
3 个回答

我认为是这里的问题:

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

可以改成这样试试:

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

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

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

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

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语义化

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题