使用javascript点击一个伪元素?

tim*_*son 16 javascript css jquery pseudo-element

我想知道如何启用单击:before伪元素(JSfiddle I链接到下面的div的橙色部分).我已经读过,因为伪元素不在DOM中,所以你需要一个hack.不幸的是,我找不到实际显示工作代码的现有Stackoverflow问答.

链接:http: //jsfiddle.net/Vv6Eb/4/

HTML:

<div></div>
Run Code Online (Sandbox Code Playgroud)

CSS:

div { position:relative; background-color:#333;
      padding:20px; margin:20px; float:left; 
}

div:before { content:""; display:block; 
    padding:5px; background-color:#f60; border:2px solid white; 
    position: absolute; top:-2px; right:-2px; border-bottom-left-radius: 10px; 
}
Run Code Online (Sandbox Code Playgroud)

Shm*_*dty 16

如果您知道圆圈"应该"在哪里,您可以使用三角学来查看点击是否在圆圈内:http://jsfiddle.net/Vv6Eb/19/

$("div").click(function(e){
    var $me = $(this),
        width = $me.outerWidth(),
        height = $me.outerHeight(),
        top = $me.position().top,
        left = $me.position().left;

    var len = Math.sqrt(Math.pow(width - e.offsetX, 2) + Math.pow(e.offsetY, 2));

    if (len < 10)
        alert('ding');
});?
Run Code Online (Sandbox Code Playgroud)


VVV*_*VVV 11

解决方法是动态地将a附加<span>到项目并为其指定单击方法.喜欢这个小提琴.

var item = $('<span />');
item.click(function() { alert('click'); });
$('div').append(item);
Run Code Online (Sandbox Code Playgroud)

CSS

div { position:relative; background-color:#333;
      padding:20px; margin:20px; float:left;
}

div span { content:""; display:block;
    padding:5px; background-color:#f60; border:2px solid white;
    position: absolute; top:-2px; right:-2px; border-bottom-left-radius: 10px;
}
Run Code Online (Sandbox Code Playgroud)