仅将焦点事件绑定到子元素
Bind focus event to children elements only
我想只将focus()事件绑定到具有特定类的div的子级。这是我尝试过的,但没有奏效:
var boxedElements = "p,div,h1,h2,h3,h4,h5,h6,table";
$(".myBox").find(boxedElements).focus(function () {
var tagname = $(this).prop("tagName");
console.log(tagname);
});
由于某种原因,该功能从未达到。关于如何处理这个问题的任何想法?
编辑
<div class="myBox" contenteditable="true">
<h3>This is a header</h3>
<p>This is a paragraph</p>
<p>This is another paragraph</p>
</div>
现在,用户可以单击元素,或者,由于其内容可编辑,可以使用键盘箭头从h3导航到第一个p元素。我希望能够检测到这一点。
这就是我最终解决它的方式,感谢@Nikolay Ermakov 和 @mmativ
var boxedElements = "p,div,h1,h2,h3,h4,h5,h6,table";
$(".myBox").find(boxedElements).click(function (e) {
var tagname = $(this).prop("tagName");
console.log(tagname);
e.stopPropagation();
});
$(".shmeditor").click(function () {
var tagname = $(this).prop("tagName");
console.log("other tag: " + tagname);
});
$(".myBox").keydown(function (e) {
var $element = $(getSelection().getRangeAt(0).commonAncestorContainer.parentNode).closest(boxedElements);
if ($element.hasClass("myBox")) {
console.log("other tag: ");
}
else {
console.log($element.prop("tagName"));
}
});
相关文章:
- 将动态元素绑定到函数;只剩下一个绑定
- Knockout绑定是膨胀的html(表单元格),如何使用javascript创建绑定或从父元素绑定
- 使用Kendo的动态HTML元素绑定
- 将多个元素绑定到同一onclick
- 如何在AJAX驱动的应用程序中优化元素绑定
- 使用AngularJS UI路由器时出现元素绑定问题
- 如何将 DOM 元素绑定到自定义 $.touchpress 事件
- 如何在React Native中为ListView中的每个元素绑定函数
- 对克隆的image元素绑定onclick事件
- 将DIV元素绑定到溢出滚动条
- 使用ng repeat将表单元素绑定到角度中的新对象
- 将元素绑定到不同帧中的现有 AngularJS 作用域
- KNOCKOUTJS 将多个输入元素绑定到一个可观察量
- 如何将两个 html 元素绑定在一起,当第一个元素被删除时,第二个元素也从 DOM 中删除
- OOJS-将每个元素绑定到一个特定的点击
- 真正阻止元素绑定-取消绑定元素-AngularJS
- 如何在jQuery中将多个元素绑定到多个事件
- Vue.js-将同名的无线电元素绑定到数组
- 将两个数组元素绑定为一个
- Flotr2 -安全地销毁图形元素以及为该元素绑定的所有事件