все. Я искал этот веб-сайт и многие другие, чтобы понять, почему функция toggleClass не работает в моем коде Jquery, и хотя я нашел несколько разных объяснений, они не соответствовали тому, что я хочу, чтобы мой эффект делал.
Я очень плохо знаком с Jquery и поэтому не уверен в функциях Jquery. Вот мой код Jquery:
$("document").ready(function(){
$("div#btn-slide").click(function(){
$("div#panel").slideToggle("slow");
$("div#btn-slide").toggleClass("smallbox");
});
});
Вот мой HTML-код.
<div id="panel">
</div>
<div id="btn-slide">
</div>
Эффект, который я ищу здесь, очень прост. При нажатии меньшего элемента div (btn-slide) больший элемент div (панель), который находится над меньшим элементом div, будет подниматься на экран браузера до тех пор, пока он полностью не будет скрыт, поэтому я использую slideToggle («медленно»). ) функция.
Тогда последнее, что я хочу сделать, это чтобы меньший div (btn-slide) изменил свое фоновое изображение. Вот почему я использую toggleClass ("smallbox"). Класс smallbox находится в моем CSS-файле и содержит фоновое изображение стрелки, указывающей вниз. Это изображение, которое я хочу показать в моем меньшем элементе div (btn-slide), когда больший элемент div (панель) сместился на свое скрытое место.
Единственный способ заставить это работать - это зайти в мой CSS-файл и поместить! Важный в конец background-image класса CSS «smallbox», но я хочу знать правильную технику Jquery для этого эффекта.
ПРИМЕЧАНИЕ. Я хочу иметь возможность щелкать меньший элемент div (btn-slide) и каждый раз, когда я щелкаю по нему, фоновое изображение меняется на соответствующую стрелку.
Как мне добиться этого эффекта?
Спасибо!
ОБНОВЛЕНИЕ: Я очень благодарен за все ваши ответы. Хорошо, все ваши ответы заставили меня задуматься, и поэтому я еще раз просмотрел функцию toggleClass и считаю, что теперь код работает правильно. Вот мой код CSS.
#PANEL {
width: 240px;
height: 320px;
background-color: #000000;
margin: 0px auto;
}
#BUTTON {
width: 100px;
height: 50px;
background-image:url(Arrow_Up.jpg);
background-repeat: no-repeat;
margin: 0px auto;
}
#BUTTON.GoUp {
background-image:url(Arrow_Down.jpg);
}
Теперь моя ошибка, по-видимому, заключалась в том, что я сам добавлял класс .GoUp с назначенным фоновым изображением вместо добавления нового класса в #BUTTON. Я изменил код, и теперь все работает нормально.
Еще раз всем спасибо за ваши быстрые ответы!