我正在尝试创建类似于 Firefox 调试工具 ( ctrlshift+ C) 的容器选择器。总体思路是返回选定(单击)元素的列表以供进一步处理。
这是我现在拥有的:
$('ul,li,a').on('mouseenter', function (e) {
e.stopPropagation();
$(this).css({
outline: "1px solid red"
});
}).on('mouseleave', function (e) {
e.stopPropagation();
if (!$(this).hasClass('box-selected')) {
$(this).css({
outline: 0
});
}
}).on('click', function (e) {
e.stopPropagation();
if ($(this).hasClass('box-selected')) {
$(this.removeClass('box-selected'))
.css({
outline: 0
});
e.preventDefault();
} else {
$(this).addClass('box-selected').
css({
outline: '1px solid green'
});
e.preventDefault()
}
});
在最简单的情况下工作,但普遍的问题是事件冒泡,选择界面不是很友好。
它是如何在 Firefox 中完成的?也许它需要更好的造型?工具提示呢?