Javascript.RU

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

Люди, подскажите, пожалуйста обработчик
Скорее всего мой случай очень простой, но я уже несколько дней ломаю голову)
Я использую метод on() потому что элементы, которые слушают событие, должны так же слушать события
на других элементах, поэтому addEventListener здесь не катит. Подскажите, пожалуйста, как сделать
чтобы обработчик срабатывал постоянно?
Вот то, о чем я говорю - обработчик срабатывает, к сожалению, только два раза:
$('#wrapper').children().children().on("click", "div.listener", function(e) {
$( "div.listener" ).css("display", "none");
$( "#clicker" ).bind("click", function(e) {
$( "div.listener" ).css("display", "block");
})
});
$( "#clicker" ).bind("click", function(e) {
$( "div.listener" ).trigger("click");
});
Вот весь код целиком - можно запустить для наглядности:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Документ без названия</title>
<script src="js/jquery-1.11.3.js"></script>
<script type="text/javascript">

$(document).ready(function(){

var allFormBlocks = document.getElementsByClassName("formblock");
var hiddenArr = $(allFormBlocks);
hiddenArr.slice(1).hide();

$("div.listener").css("color", "red");

$('#wrapper').children().children().on("click", "div.listener", function(e) {
$( "div.listener" ).css("display", "none");
$( "#clicker" ).bind("click", function(e) {
$( "div.listener" ).css("display", "block");
})
});
$( "#clicker" ).bind("click", function(e) {
$( "div.listener" ).trigger("click");
});

$('#button1').bind("click", function(e){//конец блока1 следующий раздел
$('#block1').hide();
$('#block2').show();
});


$('#button2').bind("click", function(e){//конец блока2 следующий раздел
$('#block2').hide();
$('#block3').show();
});

$('#button3').bind("click", function(e){//конец блока2 предыдущий раздел
$('#block2').hide();
$('#block1').show();
});
$('#button4').bind("click", function(e){//конец блока3 предыдущий раздел
$('#block3').hide();
$('#block2').show();
});
});



</script>
</head>
<body>

<div id="wrapper">
<div class="testform">
<form method="POST" name="form">

<div class="formblock" id="block1">
<h1>Это блок №1</h1>
<div>
<p><label><input id="clicker" type="checkbox" name="npo" value="0">скрыть некоторые элементы<label></p>
</div>
<div>DIV блока №1</div>
<div class="listener">Это тоже DIV блока №1</div>
<div>и это тоже DIV блока №1</div>
<button type="button" id="button1">следующий раздел</button>
</div>
<div class="formblock" id="block2">
<h1>Это блок №2</h1>
<div>DIV блока №2</div>
<div class="listener">Это тоже DIV блока №2</div>
<div>и это тоже DIV блока №2</div>
<button type="button" id="button2">следующий раздел</button></br>
<button type="button" id="button3">предыдущий раздел</button>
</div>
<div class="formblock" id="block3">
<h1>Это блок №3</h1>
<div>DIV блока №3</div>
<div class="listener">Это тоже DIV блока №3</div>
<div>и это тоже DIV блока №3</div>
<button type="button" id="button4">предыдущий раздел</button>
</div>
</form>
</div>
</div>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 07.02.2016, 20:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Макsiм,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 07.02.2016, 21:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Макsiм,
на всякий случай забейте в поиск по форуму открывашка, может это то что вам нужно
Ответить с цитированием
  #4 (permalink)  
Старый 08.02.2016, 13:10
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

Макsiм,
объясните что вы хотите реализовать, а то я ничего не понял...(((
Ответить с цитированием
  #5 (permalink)  
Старый 08.02.2016, 18:43
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

рони,
<!DOCTYPE html>
<html>
<head>
  <title></title>
<script type="text/javascript">
var _click = function () {
        var b = 1;
        return function (c) {
            var a = document.getElementById("item" + b);
            c == b && (a.style.display = "none" == a.style.display ? "" : "none");
            c != b && (a.style.display = "none", a = document.getElementById("item" + c), a.style.display = "", b = c)
        }
    }();
window.onload = function() {
    _click(1)
 }
</script>
</head>

<body>
<a onclick="_click(1); return false;" href="#">1</a>
<a onclick="_click(2); return false;" href="#">2</a>
<a onclick="_click(3); return false;" href="#">3</a>


<div style=" display:none" id="item1">div1</div>
<div style=" display:none" id="item2">div2</div>
<div style=" display:none" id="item3">div3</div>

</body>
</html>

Ну ты тут написал конечно))))) вникнуть не могу((***
Ответить с цитированием
  #6 (permalink)  
Старый 08.02.2016, 18:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

DynkanMaclaud,
главное работет
Ответить с цитированием
  #7 (permalink)  
Старый 08.02.2016, 19:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

DynkanMaclaud,
строка 10 если жмём прежнюю ссылку -- меняет видимость только у его блока,
строка 11 если ссылка другая -- старый блок закрываем , находим новый и открываем , сохраняем то на чего нажали в темп
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не правильно работает прокрутка, подскажите как сделать правильно? denfer12 Общие вопросы Javascript 0 09.05.2012 00:34
Подскажите пожалуйста почему не работает. gheka Общие вопросы Javascript 7 11.02.2012 22:07
Подскажите пожалуйста как сделать задание Альбиночка Общие вопросы Javascript 1 28.11.2011 18:47
Выпадающее меню ! Подскажите пожалуйста 123 Общие вопросы Javascript 0 08.01.2009 22:56
Люди знающие java подскажите начинающему westvovik Общие вопросы Javascript 1 27.10.2008 18:33