Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.08.2015, 00:25
Новичок на форуме
Отправить личное сообщение для kcp_808 Посмотреть профиль Найти все сообщения от kcp_808
 
Регистрация: 06.08.2015
Сообщений: 1

Не срабатывает click второй раз
Здравствуйте, уважаемые. Я сам не очень силен в js, но возникла необходимость кое что сделать
<script>
$( document ).ready(function() {
	console.log( "ready!" );

	var crntnumL = 1;
	var crntnumR = 2;
	var r_href = ".list"+crntnumR+" .right"; //получаем класс кнопки для движения вправо вида .list1 .right
	var l_href = ".list"+crntnumL+" .left"; //тоже самое влево
	$(".list"+crntnumL).css("display","block"); //показываем первый блок с list1
	$(".list"+crntnumR).css("display","block"); //второй с list2
	$(r_href).click(function () //отслеживаем клик "вправо"
	{
		$(".list"+crntnumL).css("display","none"); //убираем первые два блока
		$(".list"+crntnumR).css("display","none");
		crntnumL = crntnumL+2; //прибавляем list чтобы показать следующие 2
		crntnumR = crntnumR+2;
		r_href = ".list"+crntnumR+" .right"; //меняем класс у кнопки (был .list2 .right, стал .list4 .right)
		l_href = ".list"+crntnumL+" .left"; //тоже самое с left
		$(".list"+crntnumL).css("display","block"); //показываем два новых блока
		$(".list"+crntnumR).css("display","block");
		console.log (r_href);
		
		
	});
	$(l_href).click(function ()
	{
		$(".list"+crntnumL).css("display","none");
		$(".list"+crntnumR).css("display","none");
		crntnumL = crntnumL-2;
		crntnumR = crntnumR-2;
		r_href = ".list"+crntnumR+" .right";
		l_href = ".list"+crntnumL+" .left";
		$(".list"+crntnumL).css("display","block");
		$(".list"+crntnumR).css("display","block");
		
	});
});
</script>


HTML код имеет следующую структуру:

Код:
<div class="list1">...
...
...
<div class="left"></div>
<div class="right"></div>
</div>
<div class="list2">...
...
...
<div class="left"></div>
<div class="right"></div>
</div>
<div class="list3">...
...
...
<div class="left"></div>
<div class="right"></div>
</div>
left и right кнопки для "перелистывания".
событие click срабатывает только первый раз и перелистывает одну страницу...последующие нажатия не работают. ткните куда смотреть плз...

Пример на fiddle https://jsfiddle.net/m4q3zf7y/

Последний раз редактировалось kcp_808, 06.08.2015 в 00:53.
Ответить с цитированием
  #2 (permalink)  
Старый 06.08.2015, 07:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

карусель листалка
kcp_808,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .right{float:right;margin-top:20px;background:#F00;color:#FF3;padding:12px;border-radius:5px;cursor:pointer}
  .left{float:left;margin-top:20px;background:#00F;color:#FF3;padding:12px;border-radius:5px;cursor:pointer}
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
$(function() {
    var b = $(".right"),
        c = $(".left");
    b.add(c).on("click", function() {
        var a = $(this).is(".right"),
            a = a ? b.index(this) + 1 : c.index(this) - 1;
        0 > a && (a = b.length - 1);
        a > b.length - 1 && (a = 0);
        b.hide().eq(a).show();
        c.hide().eq(a).show()
    }).end().last().click()
});  
</script>
</head>

<body> <div class="list1">
    <div class="left">л1</div>
</div>
<div class="list2">
    <div class="right">п2</div>
</div>
<div class="list3">
    <div class="left">л3</div>
</div>
<div class="list4">
    <div class="right">п4</div>
</div>
<div class="list5">
    <div class="left">л5</div>
</div>
<div class="list6">
    <div class="right">п6</div>
</div>


</body>

</html>

Последний раз редактировалось рони, 06.08.2015 в 07:58.
Ответить с цитированием
  #3 (permalink)  
Старый 06.08.2015, 08:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

листалка без loop
kcp_808,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .right{float:right;margin-top:20px;background:#F00;color:#FF3;padding:12px;border-radius:5px;cursor:pointer}
  .left{float:left;margin-top:20px;background:#00F;color:#FF3;padding:12px;border-radius:5px;cursor:pointer}
  .no{
    opacity: 0.2;
  }

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
$(function() {
    var b = $(".right"),
        c = $(".left");
    b.add(c).on("click", function() {
        var a = $(this).is(".right"),
            a = a ? b.index(this) + 1 : c.index(this) - 1;
        0 > a && (a = 0);
        a > b.length - 1 && (a = b.length - 1);
        b.hide().toggleClass("no", a == b.length - 1).eq(a).show();
        c.hide().toggleClass("no", !a).eq(a).show()
    }).end().last().click()
});
  </script>
</head>

<body> <div class="list1">
    <div class="left">л1</div>
</div>
<div class="list2">
    <div class="right">п2</div>
</div>
<div class="list3">
    <div class="left">л3</div>
</div>
<div class="list4">
    <div class="right">п4</div>
</div>
<div class="list5">
    <div class="left">л5</div>
</div>
<div class="list6">
    <div class="right">п6</div>
</div>


</body>

</html>
Ответить с цитированием
  #4 (permalink)  
Старый 06.08.2015, 10:15
Аватар для join
Профессор
Отправить личное сообщение для join Посмотреть профиль Найти все сообщения от join
 
Регистрация: 05.03.2012
Сообщений: 477

рони,
если кол-во будет не четное, то один див потеряется. list7, list9
Ответить с цитированием
  #5 (permalink)  
Старый 06.08.2015, 11:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

join,
... тогда бы бабушка, была бы дедушкой
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Событие на теге input срабатывает несколько раз hrundel Events/DOM/Window 3 15.12.2013 14:49
Событие click вызывается несколько раз. Почему? rusbody jQuery 22 21.08.2012 16:17
[GM] Нежалательный запуск скрипта несколько раз VitAl2013 Firefox/Mozilla 5 01.08.2012 11:58
не срабатывает на второй раз ajax[отправка формы] vovs jQuery 5 21.09.2010 12:12
Не выполнять ф-цию второй раз, пока она не проработает до конца. peter888 Элементы интерфейса 2 04.04.2010 13:04