15

可以说我有:

<div></div>

和:

div {
    width: 500px;
    height: 500px;
    position: relative;
}
div:after {
    content: '';
    display: block;
    width: 20px;
    height: 20px;
    position: absolute;
    top: 0;
    right: 0;
}

我可以做类似的事情$('div:after').click(function(){...});吗?如果我点击div但不点击,它不会触发div:after

4

1 回答 1

8

也许。根据您构建伪内容的方式,您将不得不依靠计算鼠标位置来点击实际 div。事件处理程序将全部放在 div 上,而不是伪元素上,因为它在 DOM 中不存在。

有关更多信息,请参阅使用 jQuery 操作 CSS :before 和 :after 伪元素 。特别是 BoltClock 的回答。

另请参阅 Felix 的评论,了解另一种没有鼠标位置的可能解决方案:仅检测伪元素上的单击事件

于 2013-03-29T16:51:59.163 回答