Jquery 如何设置此元素的样式
我有这个脚本来设置元素悬停时的框阴影。同时还应删除父样式:Jquery 如何设置此元素的样式,jquery,Jquery,我有这个脚本来设置元素悬停时的框阴影。同时还应删除父样式: var on = { boxShadow : "inset 0px 0px 0px 1px #f80" }; var out = { boxShadow : "inset 0px 0px 0px 0px #f80" }; $('body *').hover(function(e) { $(this).css(out); $(this).css(on); e.stopPropagati
var on = {
boxShadow : "inset 0px 0px 0px 1px #f80"
};
var out = {
boxShadow : "inset 0px 0px 0px 0px #f80"
};
$('body *').hover(function(e) {
$(this).css(out);
$(this).css(on);
e.stopPropagation();
}, function() {
$(this).parent().css(out);
$(this).css(out);
});
如果你看这个例子,你会发现如果你悬停在跨度上,它的父p也会获得样式。我该怎么做才能只设置悬停的元素的样式,而不是它的子元素或父元素的样式?我必须使用每一个吗?感谢上帝让它工作起来:
你看@adeneo没有问题:我正在做一件更大的东西,我需要身体*可能的复制品。你接受的解决问题的答案是否正确?使用asterix作为选择器,并将mouseenter/leave应用于页面上的每个元素将导致你如此痛苦,以至于你永远无法正常工作。悬停只是“mouseenter”等的快捷方式。因此,你使用什么并不重要,因为这不是问题所在,所以将事件处理程序绑定到页面上的每个元素是正确的。如果JQuery选择器选择了多个元素,则对所有选择项执行选择操作。如果写入$'*'。请悬停;然后将悬停事件添加到页面上的每个元素中。您所做的是将触发悬停的元素的所有父元素的CSS更改为out,并将触发悬停的元素的CSS更改为on。此外,没有理由进行e.stopPropagation。如果您将此代码放在完整的网站上,网站中的每个元素都将受到影响。
var on = { boxShadow : "inset 0px 0px 0px 1px #f80" };
var out = { boxShadow : "inset 0px 0px 0px 0px #f80" };
$('body *').hover(function(e) {
$(this).parents().css(out);
$(this).css(on);
e.stopPropagation();
}, function() {
$(this).parent().css(out);
$(this).css(out);
$(this).parent().css(on);
});