贝娄是我的代码。我试过了。当弹出这个弹出窗口时,我想用这个关闭按钮关闭整个弹出框。
CSS代码
.bigdiv{
display:none;
background-color:#efefef;
box-shadow: 10px 10px 10px 100000px rgba(0, 0, 0, 0.4);
border:2px solid #efefef;
width:400px;
height:300px;
position:fixed;
z-index:500;
top:25%;
left:25%;
margin:0 auto;
padding:20px;
}
.bigdiv:after {
cursor:pointer;
content:url('http://static.doers.lk/img/closebox.png');
position: relative;
right: -195px;
top: -310px;
z-index: 999;
}
JQUERY
$(".left div").click(function () {
$(".bigdiv").show("slow");
$(".bigdiv").click(function () {
$(".bigdiv").hide();
}) ; }) ;
HTML
<div class="left">
<div>intro text here</div><div></div><div></div>
</div>
<div class="bigdiv">some content</div>
我想选择:在元素之后。如何使用jquery做到这一点?
答案 0 :(得分:12)
我想选择:在元素之后。如何使用jquery做到这一点?
你不能,DOM中不存在生成的伪元素(但遗憾的是)。
我们可以证明这一点:
CSS:
#foo:before {
content: '[Before]'
}
#foo:after {
content: '[After]'
}
HTML:
<body><div id="foo">Foo</div></body>
JavaScript的:
(function() {
var msgs = [];
var child;
var div;
for (child = document.body.firstChild;
child;
child = child.nextSibling) {
if (child.id) {
msgs.push("Child " + child.nodeName + "#" + child.id);
}
else {
msgs.push("Child " + child.nodeName);
}
}
div = document.createElement('div');
div.innerHTML = msgs.join("<br>");
document.body.appendChild(div);
})();
上面得到的页面(如果我们假设script
元素在最后添加到body
)是:
[Before]Foo[After] Child DIV#foo Child SCRIPT
正如您所看到的,就DOM而言,生成的伪元素根本不存在。
答案 1 :(得分:2)
您可以使用大多数主流浏览器支持的getComputedStyle函数 - IE9,IE10,Chrome,FF。我在IE8中找不到这样做的方法。
var attrContent = getComputedStyle(this,':after').content;
var attrWidth = getComputedStyle(this,':after').width;
如果您发现此函数未定义,请尝试使用window.getComputedStyle。
答案 2 :(得分:0)
不幸的是,你不能在jQuery(或一般的JavaScript)中选择伪元素。
jQuery的appendTo()
方法与CSS :after
的工作方式完全相同,因此它可以作为替代方法(虽然不如纯CSS解决方案那么优雅)。
例如而不是:
.bigdiv:after {
cursor:pointer;
content:url('http://static.doers.lk/img/closebox.png');
position: relative;
right: -195px;
top: -310px;
z-index: 999;
}
尝试这样
CSS:
.bigdivAfter {
cursor:pointer;
position: relative;
right: -195px;
top: -310px;
z-index: 999;
}
JS:
$("<div class=bigdivAfter><img src='http://static.doers.lk/img/closebox.png'></div>").appendTo(".bigdiv");
然后您可以正常选择密码箱图片。
答案 3 :(得分:0)
您可以使用jquery附加关闭按钮,并可以为其分配关闭事件。 这个jquery和css对你有用。
<强> CSS 强>
.bigdivAfter {
cursor:pointer;
position: absolute;
right: //as you want;
top: //as you want;
z-index: 999;
}
<强> JQUERY 强>
$(document).ready(function(){
$(".bigdiv").append('<img class="closeButton" src="http://static.doers.lk/img/closebox.png"/>');
$(".bigdiv .closeButton").click(function () {
$(".bigdiv").hide();
}) ;
$(".left div").click(function () {
$(".bigdiv").show("slow");
}) ;
我还建议你在html上添加图像,而不是通过jquery
添加它