我想将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元素。我希望能够发现它。
答案 0 :(得分:0)
所以这就是我最终解决的问题,谢谢@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"));
}
});