Сначала я хотел бы извиниться, потому что мой макет кода не самый лучший. То, что я пытаюсь сделать здесь, - показать описание образца текста, нажав кнопку информации. Моя проблема в том, что когда я нажимаю любую из информационных кнопок, он отображает все описания всех образцов текста, когда он должен показывать только описание предполагаемого образца текста в каждый момент.
Я ценю вашу помощь. Заранее спасибо.
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function() {
$("dd").hide();
$(".btn1").click(function() {
$("dd").toggle("slow");
});
$("dd").hide();
$(".btn2").click(function() {
$("dd").toggle("slow");
});
$("dd").hide();
$(".btn3").click(function() {
$("dd").toggle("slow");
});
});
</script>
</head>
<body>
<dl>
<dt>Coffee</dt>
<button class="btn1">+ Info</button>
<dd>Black hot drink</dd>
<dt>Milk</dt>
<button class="btn2">+ Info</button>
<dd>White cold drink</dd>
<dt>Water</dt>
<button class="btn3">+ Info</button>
<dd>Transparent fluid</dd>
</dl>
</body>
</html>
Измените html на следующие добавления идентификаторов в dd:
<body>
<dl>
<dt>Coffee</dt>
<button class="btn1">+ Info</button>
<dd id="dd1">Black hot drink</dd>
<dt>Milk</dt>
<button class="btn2">+ Info</button>
<dd id="dd2">White cold drink</dd>
<dt>Water</dt>
<button class="btn3">+ Info</button>
<dd id="dd3">Transparent fluid</dd>
</dl>
</body>
Затем в вашем сценарии jquery:
$(document).ready(function() {
$("dd").hide();
$(".btn1").click(function() {
$("#dd1").toggle("slow");
});
$("dd").hide();
$(".btn2").click(function() {
$("#dd2").toggle("slow");
});
$("dd").hide();
$(".btn3").click(function() {
$("#dd3").toggle("slow");
});
});
Вот JSFiddle
РЕДАКТИРОВАТЬ :
Ниже приведена более короткая версия вышеприведенного кода, достигающая того же результата в меньших строках кода:
$(document).ready(function() {
$("dd").hide();
$("dl button").click(function() {
$("dd").hide();
var number = $(this).attr('class').substr(-1);
$("#dd"+number).toggle("slow");
});
});
+ Изменить
$(".btn1").click(function(){
$("dd").toggle("slow");
});
к
$("button").click(function(){
$(this).next('dd').toggle("slow");
});
Потому что вам нужно выбрать не ВСЕ элементы dd, а только те, которые находятся рядом с кнопкой, которая была нажата.