1

我正在尝试使用 jQuery 的 toggleClass() 单击一个 div 并将该 div 扩展到 100% 的高度和宽度(换句话说,全屏)。我认为这很容易,但由于某种原因,我很挣扎。今天早上一定很累...以下代码切换到 100% 的高度和宽度,但它不会切换回原始大小。

HTML

<div class="s3div1" id="s3div1"></div>

JS

$("div#s3div1").dblclick(function (event) {
    $(".s3div1").toggleClass("overlay").toggleClass("s3div1");
    });

CSS

.overlay {  
    position: absolute;
    top: 0;
    left: 0;
    width:100%;
    height:100%;
    z-index:1000;
}

.s3div1 {
    position: absolute;
    z-index: 10;
    top: 0px;
    right: 25px;
    height: 550px;
    width: 225px;
    border: 5px solid white;
    border-radius: 25px;
    float: right;
    padding-right: 8%;      
}

#s3div1 {
    background-image: url('assets/volcano3.jpg');
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;   
}

提前致谢!

4

2 回答 2

3

您通过类​​名而不是双击事件所引用的对象来引用。

而是使用 $(this) 的值,它是双击的目标对象(包装在 JQuery 对象中以便于使用):

$("div#s3div1").dblclick(function (event) {
   $(this).toggleClass("overlay").toggleClass("s3div1");
});
于 2013-10-16T16:16:59.683 回答
2

我想你的意思是:

$("#s3div1").toggleClass("overlay").toggleClass("s3div1");
   ^-- # instead of .

一旦切换类.s3div1将不再匹配,因此第二次 dblclick 没有任何反应。

去散个步,喝点咖啡,吃个橙子。

于 2013-10-16T16:10:44.250 回答