在纯 JS 中重新创建 jQuery live/on
Recreating jQuery live/on in pure JS
我正在用纯JS制作一个待办事项列表Web应用程序(尽量不使用jQuery!),我在一个方面挣扎,将点击处理程序附加到我刚刚创建的元素上。这是创建代码:
new_li = document.createElement('li');
new_li.innerHTML = item.value;
new_li.setAttribute('rel', time);
prependElement(tudu_list, new_li);
这发生在单击按钮时。
我需要将点击处理程序附加到 UL 中的每个 LI 上。但是当我单击新创建的 LI 时没有任何反应。我猜这是一个没有绑定到元素的点击处理程序的问题。在jQuery中,我通常会做.live(),但在JS中,我不知道如何解决这个问题!
将事件处理程序附加到<ul>
元素,然后检查事件的target
属性 - 如果它是<li>
元素之一,则执行事件处理程序,否则跳过它。
https://developer.mozilla.org/en/DOM/event.target
一种方法是:
function clickHandler(){
// Do something...
}
new_li = document.createElement('li');
new_li.innerHTML = item.value;
new_li.setAttribute('rel', time);
new_li.onclick = clickHandler; // <===========
prependElement(tudu_list, new_li);
当然,您可以(并且应该)使用addEventListener
而不是内联脚本:
new_li.addEventListener('click', clickHandler)
相关文章:
- Jquery live()绑定没有'I don’我对某些元素不感兴趣
- JQuery.live()工作不正常
- jquery live 函数未检测到 AJAX 调用更改
- jQuery live()已弃用:对mouseenter和mouseout使用on
- 当使用jquery live功能时,按钮将被触发两次
- Jquery live已在上对进行了回复,但未工作
- 从jquery live切换到on不起作用
- jQuery Live Preview
- 在纯 JS 中重新创建 jQuery live/on
- jQuery live with time picker
- Fire jQuery live event with native JavaScript
- jquery Live Click Event Event 在 iPad 上不起作用
- jQuery Live Feed 仅显示 10 个项目
- jquery.live('点击',函数(事件)在页面加载时只工作一次
- 如何设置使用jquery live()动态生成的动态输入名称
- JS函数上的jQuery.live()-使用什么事件
- 调试jQuery“.live()”事件未启动
- JQuery# Live Filter conflict with Fancy Box
- Sublime text find并替换为regex,将jquery live()事件转换为on()
- jquery升级中的jquery.live to.on