我想我在这里有一个脑筋急转弯。
我想将 mouseover 和 mouseout 专门绑定到元素的 :after 标记,而不会在树下冒泡。绑定现在显然有效,但它没有将 :after 视为一个独立元素,这是我的问题所在。
html:
<div class="menuitem editable"></div>
之后的 CSS:
.menuitem:after {
padding:2px;
position: absolute;
right: 0px;
font-family: 'chevron';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
-webkit-font-smoothing: antialiased;
content: "\f054";
top: 45%;
margin-top: -0.5em;
border-top-left-radius:3px;
border-bottom-left-radius:3px;
font-size:15px;
}
JS:
$('.editable').bind('mouseover', function(event) {
event.stopPropagation();
$(this).addClass('focus');
});
$('.editable').bind('mouseout', function(event) {
event.stopPropagation();
$(this).removeClass('focus');
});
$('.menuitem:after').bind('mouseover', function(event) {
event.stopPropagation();
after_color = $(this).css('background');
alert(after_color);
$(this).css('background', 'rgba(0,0,0,0.5)');
});
$('.menuitem:after').bind('mouseout', function(event) {
event.stopPropagation();
$(this).css('background', after_color);
});
请不要问我为什么要详细说明或更改 html 设置,因为它是为样式构建器而设计的,它就是这样。