首先让我说我没有jQuery专家。但是,我有代码(包括在下面),它将抓住我悬停的元素。我遇到的问题是,如果我在<div id="literalContent">
:
<div>
<table>
<tr>
<td>
<div>
我将鼠标悬停在最后<div>
上,我看到了边界,那真是太棒了。但是,如果我想选择父表,则不会选中它。对我的愚蠢问题的任何想法都会很棒。
$(function () {
$('#literalContent').find("*").hover(
function () {
$('[class="SelectedItem"]').removeAttr("class");
$(this).fadeIn(500, function () {
$(this).addClass("SelectedItem");
})
//$(this).addClass("SelectedItem");
//$('#controllabel').html('hovering ' + $(this).prop("tagName"));
},
function () {
if ($(this).attr('class') == "SelectedItem") {
$(this).removeAttr("class");
}
else {
$(this).removeClass("SelectedItem");
}
});
}
);
答案 0 :(得分:0)
它似乎在这里工作 - http://jsfiddle.net/jayblanchard/ucM96/
$('#outer').find('*').hover(
function () {
$(this).addClass('redBorder');
},
function () {
$(this).removeClass('redBorder');
});
请注意,使用鼠标选择inner4会导致悬停也应用于inner3 - 由于它们之间的关系以及鼠标事件的处理方式。
通过执行诸如提供多个选择器之类的内容,您可以更加具体 -
$('.foo, .bar').hover(
function (e) {
$(this).addClass('redBorder');
console.log(e.target.id);
},
function () {
$(this).removeClass('redBorder');
});
答案 1 :(得分:0)
要仅突出显示目标(而不是其任何祖先),您可以在mouseenter / mouseleave上的目标直接父级上切换类。
$('#outer').find('*').hover(
function (e) {
var o = $(e.currentTarget),
par = o.parent();
o.addClass('redBorder');
if(par[0].id != "outer"){ // exclude "outer", since it is the wrapper
par.addClass('hideBorder'); // parent still has "redBorder" class
// "hideBorder" just hides it
}
console.log(e.currentTarget.id+" has focus");
},
function (e) {
var o = $(e.currentTarget),
par = o.parent();
o.removeClass('redBorder');
par.removeClass('hideBorder');
if(par[0].id != "outer"){ // exclude "outer", since it is the wrapper
console.log(par[0].id+" has focus");
}
});
这将明显隐藏直接父母的边界,并且&#34;返回&#34;鼠标离开孩子时的边界。