Как добавить CSS при нажатии кнопки jquery?
Я хочу создать, когда я нажимаю кнопку, он переключает скрытие моего div и вращает стрелку на 90 градусов, а при повторном щелчке он переключает отображение моего div и вращает стрелку до -90 градусов.
Вот что я пробовал:
$("#toogle_menu").click(function() {
$("#jy_nav_pos_main").slideToggle("slow"),
$("#toogle_menu").css({
transform: "rotate(-90deg)"
});
});<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class = "nav nav-tabs row margin_auto" id = "jy_nav_pos_main" role = "tablist">
<li>menu</li>
</ul>
<button id = "toogle_menu" class = "btn btn-light">
»
</button>


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вместо того, чтобы устанавливать стиль для каждого щелчка, переключать класс $( "#toogle_menu" ).toggleClass( "toggled" ) и стиль этого класса в css
$("#toogle_menu").click(function() {
$("#jy_nav_pos_main").slideToggle("slow"),
$("#toogle_menu").toggleClass("toggled")
});.toggled {
transform: rotate(-90deg);
}<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class = "nav nav-tabs row margin_auto" id = "jy_nav_pos_main" role = "tablist">
......
</ul>
<button id = "toogle_menu" class = "btn btn-light">
»
</button>не работает на меня, мой код, подобный этому jsfiddle.net/sqfeonwh, у меня уже есть css для переключения, поэтому я добавляю еще css, но не работаю.
Попробуй это..
var clicked = false;
$("#toogle_menu").click(function() {
var deg = clicked ? 0 : -90;
$("#jy_nav_pos_main").slideToggle("slow"),
$("#toogle_menu").css({
transform: "rotate("+deg+"deg)"
});
clicked = !clicked;
});<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class = "nav nav-tabs row margin_auto" id = "jy_nav_pos_main" role = "tablist">
<li>menu</li>
</ul>
<button id = "toogle_menu" class = "btn btn-light">
»
</button>попробуй это...
<style type = "text/css">
.nav{
display: none;
}
.rotate{
transform: rotate(90deg);
-webkit-transform:rotate(90deg);
-moz-transform:rotate(90deg);
-o-transform:rotate(90deg);
-ms-transform:rotate(90deg);
transition: all 0.4s linear;
}
#clickBtn span{
transition: all 0.4s linear;
}
</style>
<button type = "button" id = "clickBtn">Click <span class = "fa fa-angle-right"></span></button>
<ul class = "nav nav-tabs row margin_auto" id = "jy_nav_pos_main" role = "tablist">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
</ul>
<script type = "text/javascript" src = "jquery.js"></script>
<script type = "text/javascript">
$(document).ready(function(){
$("#clickBtn").on('click',function(){
$(this).find('span').toggleClass('rotate');
$(".nav").slideToggle();
});
});
</script>
Привет, добро пожаловать в SO. Вы можете дать более развернутый ответ, 1) прокомментировав, какие изменения внести / как это решает проблему 2) добавив свой код в качестве рабочего фрагмента. На подобные вопросы люди будут искать ответы там, где они смогут увидеть, как они работают без каких-либо усилий.
У вас нет элемента div !!!