Ниже приведен мой код для включения слайд-шоу jQuery. Очень простой код, но я не могу запускать его отдельно. Когда я нажимаю один, все будет запускаться одновременно. Я знаю, что это для всех тех же классов, но я не могу понять, что я буду с этим делать. У меня много такого дива.
HTML
<div class="answerarea">
<div class="answer"><a class="ans">go</a></div>
<div class="answertxt"> show this</div>
</div>
<div class="answerarea">
<div class="answer"><a class="ans">go</a></div>
<div class="answertxt"> show this</div>
</div>
<div class="answerarea">
<div class="answer"><a class="ans">go</a></div>
<div class="answertxt"> show this</div>
</div>
<div class="answerarea">
<div class="answer"><a class="ans">go</a></div>
<div class="answertxt"> show this</div>
</div>
CSS
.answerarea {
float: left;
width: 350px;
margin:20px;
}
.ans {
padding: 5px;
background-color: #990;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
cursor:pointer;
}
.answertxt {
background-color: #06C;
display:none;
color: #FFF;
padding: 2px;
float: left;
}
.answer {
float: left;
}
JS
$(document).ready(function(){
$('.ans').click(function (e) {
e.stopPropagation();
if($('.answertxt').hasClass('visible')) {
$('.answertxt').stop().hide('slide', {direction: 'left'}, 500).removeClass('visible');
} else {
$('.answertxt').stop().show('slide', {direction: 'left'}, 500).addClass('visible');
}
});
});
демо http://jsfiddle.net/JSkZU/
NB admin/mod Я извиняюсь за неправильную тему. на самом деле я не понимаю, какой предмет подходит для этой проблемы. вы можете исправить. благодаря
Попробуйте сделать свой селектор более конкретным, то, что у вас есть, выберет все из них.
$('.ans').click(function (e) {
e.stopPropagation();
var $this = $(this); //this represent the clicked element
//Get to the closest/parent and select next and do a toggle and toggleclass on it
$this.parent().next().stop().toggle('slide', {
direction: 'left'
}, 500).toggleClass('visible');
});
.toggle() будет переключать текущее состояние элемента, а .toggleClass добавит/удалит класс по его отсутствию/присутствию.
Чтобы свернуть другие, вы можете:
$(document).ready(function () {
$('.ans').click(function (e) {
e.stopPropagation(); //did you mean e.preventDefault();
var $this = $(this), $answerTxt = $this.closest('.answer').next();
$answerTxt.add($('.answertxt.visible')).stop().toggle('slide', {
direction: 'left'
}, 500).toggleClass('visible');
});
});