Я очень новичок в javascript и jQuery и теперь полностью застрял, несмотря на различные варианты. Я пытаюсь создать раздел expand/collapse с несколькими div. Я хотел бы, чтобы каждый div открывался и закрывался отдельно, со стрелкой сбоку, направленной вверх или вниз, в зависимости от того, расширяется или сжимается содержимое.Как сделать несколько divs slidetoggle с меняющейся стрелкой
Из кода, который я написал ниже, только первый div работает правильно. Единственное, что случается Когда вы нажимаете на два других div, это то, что стрелка в первом div изменяется.
Любая помощь будет принята с благодарностью.
Ниже приводится CSS:
#header_background {
background-image: url(header-background.png);
width:748px;
height:43px;
margin-left: -17px;}
#expand_arrow {
display: inline-block;
width: 17px;
height: 18px;
float:left;
margin-left:20px;
padding-left:0px;
padding-top:11px;
background-repeat:no-repeat; }
.sub_header {
color:#204187;
font-weight:bold;
font-size:16px;
vertical-align:middle;
padding-left:4px;
padding-top:12px;
float:left;
text-decoration:none;
}
Вот попытка яваскрипт и JQuery:
function chngimg() {
var img = document.getElementById('expand_arrow').src;
if (img.indexOf('expand-arrow.png')!=-1) {
document.getElementById('expand_arrow').src = 'images/collapse-arrow.png';
}
else {
document.getElementById('expand_arrow').src = 'images/expand-arrow.png';
}
}
$(document).ready(function(){
$("#header_background").click(function(){
$("#section").slideToggle("slow");
});
});
А вот HTML-
<div id="header_background" >
<img id="expand_arrow" alt="" src="images/collapse-arrow.png" onclick="chngimg()">
<div class="sub_header" onclick="chngimg()">header 1</div>
</div>
<div id="section" style="display:none">
text 1
</div>
<div id="header_background" >
<img id="expand_arrow" alt="" src="images/collapse-arrow.png" onclick="chngimg()">
<div class="sub_header" onclick="chngimg()">header 2</div>
</div>
<div id="section" style="display:none">
text 2
</div>
<div id="header_background" >
<img id="expand_arrow" alt="" src="images/collapse-arrow.png" onclick="chngimg()">
<div class="sub_header" onclick="chngimg()">header 3</div>
</div>
<div id="section" style="display:none">
text 3
</div>
Только первый из них работает, потому что вы используете идентификаторы и идентификаторы должны быть уникальными (то есть только один элемент на странице может иметь заданный идентификатор). –
Привет Милли, добро пожаловать в переполнение стека. Вы получите дополнительную помощь в таких вещах, если вы опубликуете рабочий пример на jsfiddle.net, чтобы люди могли его отлаживать. – kthornbloom
Спасибо за весь ваш ответ. Я использовал Stack Overflow так много за последние пару лет, чтобы посмотреть на чужие вопросы и ответы, но только что подписал сегодня. Это удивительное место. – Milly