Ошибка в не большом скрипте
Приветствую!
Есть список полей, которые формируются динамически, нужно было сделать выборку этих полей, но не всех подряд, а "от" и "до" выбранного идентификатора. Затем скрывать/показывать эти элементы по клику. Я это сделал, на сколько хватило знаний, но проблема в том что, я добавляю "текст" после определенного индентификатора, чтобы по клику на тексте происходило скрытие/раскрытие полей, но этот текст после второго клика пропадает. Для наглядности выложил в песочницу, кликните на слово "тест", выделено красным. Объясните пожалуйста как решить? |
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title> - jsFiddle demo</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.js"></script>
<link rel="stylesheet" type="text/css" href="/css/result-light.css">
<style type="text/css">
ol{
color:#777;
}
.test{
color:red;
font-width:bold;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
var a = "<span class='test'>Oткрыть</span><span class='test' style='display: none;'>Закрыть</span>";
$("#list_cp_price").after(a);
$("span.test:last").nextUntil("#list_tags_input").addClass('toggle').hide();
$('.test').click(function(){
$('.test').toggle();
$('.toggle').slideToggle(300);
});
});
</script>
</head>
<body>
<ol>
<li></li>
<li id="list_post_title">Поле 0</li>
<li id="list_cp_whram">Поле 1</li>
<li id="list_cp_whbezram">Поле 2</li>
<li id="list_post_content">Поле 3</li>
<li id="list_cp_city">Поле 4</li>
<li id="list_cp_street">Поле 5</li>
<li id="list_cp_email">Поле 6</li>
<li id="list_cp_phone">Поле 7</li>
<li id="list_cp_phonetwo">Поле 8</li>
<li id="list_cp_dostavka">Поле 9</li>
<li id="list_cp_price">Поле 10 (тут начинается)</li>
<li id="list_cp_ramka" >Поле 11</li>
<li id="list_cp_canva" >Поле 12</li>
<li id="list_cp_canvaschet" >Поле 13</li>
<li id="list_cp_markanitok" >Поле 14</li>
<li id="list_cp_colors" >Поле 15</li>
<li id="list_cp_cresthor" >Поле 16</li>
<li id="list_cp_crestver" >Поле 17</li>
<li id="list_cp_steklo" >Поле 18</li>
<li id="list_cp_dopmat" >Поле 19</li>
<li id="list_tags_input">Поле 20 (тут заканчивается)</li>
<li id="list_tags_filed-1">Поле 21</li>
<li id="list_tags_filed-2">Поле 22</li>
</ol>
</body>
</html>
/lilist_cp_ramka |
Спасибо, из соседней темы нашел решение и адаптировал.:write:
var a = $("#list_cp_price").nextUntil("#list_tags_input").hide();
$("#list_cp_price").after("<span class='test'>Развернуть</span>");
$('.test').click(function(){
$(a).toggleClass('visible').toggle();
if ($(a).hasClass('visible')){
$(this).text("Свернуть");
} else $(this).text("Развернуть");
return false;
});
|
| Часовой пояс GMT +3, время: 10:25. |