jquery - Add/remove class to a button -
i'm having problem adding new class button.
button arrow should showing right(fa-angle-right) when sidebar closed. , left (fa-angle-left) again when it's open.
https://jsfiddle.net/tjkzmvlg/
html
<div> <button id="sidebartoggle" class="btn btn-primary btn-sm"> <i class="fa fa-angle-left"></i> </button> </div> js
(function() { var $sidebarandwrapper = $("#sidebar, #wrapper"); var $icon = $("#sidebartoogle i.fa"); $("#sidebartoggle").on("click", function () { $sidebarandwrapper.toggleclass("hide-sidebar"); if ($sidebarandwrapper.hasclass("hide-sidebar")) { $icon.removeclass("fa-angle-left"); $icon.addclass("fa-angle-right"); } else { $icon.addclass("fa-angle-left"); $icon.removeclass("fa-angle-right"); } }); })();
couple of things, should use toggleclass switching classes, it's more concise. additionally, i'd use relative selector .find can support multiple buttons. address question, did typo sidebartoggle. after fixing typo worked.
(function() { var $sidebarandwrapper = $("#sidebar, #wrapper"); $("#sidebartoggle").on("click", function () { $sidebarandwrapper.toggleclass("hide-sidebar"); $(this).find("i.fa").toggleclass("fa-angle-left").toggleclass("fa-angle-right"); }); })(); /* minified because changed javascript */ #main{background-color:#aea9a9;padding:4px;margin:0}#footer{background-color:#808080;color:#eee;padding:8px 5px;position:fixed;bottom:0;width:100%}.headshot{max-width:50px;border:1px solid #808080;padding:3px}.menu{font-size:12px;color:aquamarine}.menu li{list-style-type:none}.menu li.active{font-weight:bold}#sidebar{background:#525050;color:aliceblue;position:fixed;height:100%;width:250px;overflow:hidden;left:0;margin:0;transition:left ease .35s}#sidebar.hide-sidebar{left:-250px;transition:left ease .35s}#wrapper{margin:0 0 0 250px;transition:margin-left ease .35s}#wrapper.hide-sidebar{margin-left:0} <!-- minified because changed javascript --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><body> <div id="sidebar"> <span id="username"></span> <ul class="menu"> <li class="active"><a asp-controller="app" asp-action="index">home</a></li><li><a asp-controller="app" asp-action="about">about</a></li><li><a asp-controller="app" asp-action="contact">contact</a></li></ul> </div><div id="wrapper"> <div id="main"> <div> <button id="sidebartoggle" class="btn btn-primary btn-sm"> <i class="fa fa-angle-left"></i> </button> </div><div> <h2>the world</h2><p>this fun website soon!</p><form> <div> <label>date</label> <input/> </div><div> <label>location</label> <input/> </div><div><input type="submit" value="add"/></div></form> </div></div><div id="footer"> <h5> © 2017 world ltd.</h5> </div></div><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"> <script type="text/javascript" src="~/js/site.js"></script></body>
Comments
Post a Comment