div获取焦点响应事件失效及js事件委托机制
2016-10-10 21:34
591 查看
1.div的tabindex属性。当你直接为div绑定onfocus()是不会触发的,需要为标签添加tabindex属性。
-1: 用户不能通过tab键选中,只能通过js或点击获得焦点
0:用户可以使用tab键选中,通过js获取焦点
>0:指定顺序
2.当为<li>绑定事件时刚开始的做法是为每个li绑定事件监听。之后想到js事件委托。
将事件监听器添加到它们的父元素,监听器会分析从子元素冒泡上来的事件,并找到具体的子元素:
<ul
id="parent-list">
<li
id="post-1">Item 1</li>
<li
id="post-2">Item 2</li>
<li
id="post-3">Item 3</li>
<li
id="post-4">Item 4</li>
<li
id="post-5">Item 5</li>
<li
id="post-6">Item 6</li>
</ul>
// 找到父元素,添加监听器...
document.getElementById("parent-list").addEventListener("click",function(e)
{
// e.target是被点击的元素!
// 如果被点击的是li元素
if(e.target
&& e.target.nodeName
== "LI")
{
// 找到目标,输出ID!
console.log("List item ",e.target.id.replace("post-"),"
was clicked!");
}
});
-1: 用户不能通过tab键选中,只能通过js或点击获得焦点
0:用户可以使用tab键选中,通过js获取焦点
>0:指定顺序
2.当为<li>绑定事件时刚开始的做法是为每个li绑定事件监听。之后想到js事件委托。
将事件监听器添加到它们的父元素,监听器会分析从子元素冒泡上来的事件,并找到具体的子元素:
<ul
id="parent-list">
<li
id="post-1">Item 1</li>
<li
id="post-2">Item 2</li>
<li
id="post-3">Item 3</li>
<li
id="post-4">Item 4</li>
<li
id="post-5">Item 5</li>
<li
id="post-6">Item 6</li>
</ul>
// 找到父元素,添加监听器...
document.getElementById("parent-list").addEventListener("click",function(e)
{
// e.target是被点击的元素!
// 如果被点击的是li元素
if(e.target
&& e.target.nodeName
== "LI")
{
// 找到目标,输出ID!
console.log("List item ",e.target.id.replace("post-"),"
was clicked!");
}
});
相关文章推荐
- Android EditText setOnClickListener事件 只有获取焦点才能响应 采用setOnTouchListener解决
- JS获取回车事件和文本焦点处理不同按钮提交信息
- 响应id事件js和js获取input输入值及ajax的data、error属性解释
- js文本框禁用 获取文本框焦点onfocus 事件 注册事件优化
- 全局弹框--弹框可响应事件,后面的窗口也可获取焦点
- 利用事件委托解决js元素添加后未响应绑定事件问题
- js中的事件委托机制(解决动态生成的dom元素无法绑定事件的问题)
- JS事件机制:事件绑定、事件监听、事件委托(事件代理)
- 从一个view中获取到它的ViewController (事件响应机制,层层传递事件)
- js获取键盘按键响应事件(兼容各浏览器)
- js事件委托机制
- js响应id事件和获取input输入框中class值、id的值
- js 获取焦点事件所在的对象
- Android EditText setOnClickListener事件 只有获取焦点才能响应 采用setOnTouchListener解决
- JS中的事件委托机制
- 获取焦点失去焦点响应事件
- js获取键盘按键响应事件(兼容各浏览器)
- 页面加载让div元素获取焦点,通过键盘操作焦点切换,安卓电视遥控事件
- JS 获取和响应键盘按键事件
- Ajax动态拼接HTML,JS失效的解决——Jquery的事件委托