使用Jquery切换Div的宽度

Zar*_*619 1 html javascript css jquery

我想用按钮切换div的宽度.我不确定如何正确使用if-else语句来检查CSS,我也不清楚语法.

我们假设我有以下内容:

CSS

.firstDiv {
    border:1px solid black;
    padding:10px;
    width: 80px;
    margin:5px;
    display:relative;
}
Run Code Online (Sandbox Code Playgroud)

HTML

<button id="boxToggle">Change Width</button>
<div class="firstDiv">
    <p>This is a paragraph.</p>
</div>
Run Code Online (Sandbox Code Playgroud)

JavaScript的

$("#boxToggle").click(function () {
    $("#firstDiv").css("width", "120px");
});
Run Code Online (Sandbox Code Playgroud)

现在,JavaScript只会改变宽度一次而不会返回,但这仍然无效,我假设我的语法错误.

可以在链接中找到上面的JSFiddle.

https://jsfiddle.net/647ye1pk/

任何帮助表示赞赏.

Aks*_*hay 6

您可以使用它toggleClass来实现此效果

//I need an "if-else" statement in here, but I'm not sure how to use css as a condition
$("#boxToggle").click(function () {
    $(".firstDiv").toggleClass('largeWidth');
});
Run Code Online (Sandbox Code Playgroud)
.firstDiv {
    border:1px solid black;
    padding:10px;
    width: 80px;
    margin:5px;
    display:relative;
}

.largeWidth{
    width:120px;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<button id="boxToggle">Change Width</button>
<div class="firstDiv">
    <p>This is a paragraph.</p>
</div>
Run Code Online (Sandbox Code Playgroud)

如果你不想使用这个toggleClass方法试试这个

//I need an "if-else" statement in here, but I'm not sure how to use css as a condition
click = 0;
$("#boxToggle").click(function () {
    if (click == 0) {
        $(".firstDiv").css("width", "120px");
        click = 1;
    } else {
        $(".firstDiv").css("width", "80px");
        click = 0;
    }
});
Run Code Online (Sandbox Code Playgroud)
.firstDiv {
    border:1px solid black;
    padding:10px;
    width: 80px;
    margin:5px;
    display:relative;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<button id="boxToggle">Change Width</button>
<div class="firstDiv">
    <p>This is a paragraph.</p>
</div>
Run Code Online (Sandbox Code Playgroud)