Проблемка с toggle
При загрузке страницы блок rollInOut виден ровно долю секунды, а потом сразу изчезает, нижний блок на него как бы наезжает сверху и перекрывает.
Если JS отключить - все на своих местах. По всей видимости JQuery событие toggle() как-то влияет на скрытие блока rollInOut, на который по сути задания необходимо нажать для свертывания и развертывания блока с фото. Заранее всем большое спасибо за помощь! html: <body> <div id="rollInOut">Свернуть нижние 5 изображений</div> <div id="block1"> <div><img src="images/Logo/Logo.png"></div> <div><img src="images/Logo/Logo.png"></div> <div><img src="images/Logo/Logo.png"></div> <div><img src="images/Logo/Logo.png"></div> <div><img src="images/Logo/Logo.png"></div> </div> </body> JS: $(function(){ function(){ $('#block1').fadeOut(1000); $(this).text('Развернуть нижние 5 изображений'); }, function(){ $('#block1').fadeIn(1000); $(this).text('Свернуть нижние 5 изображений'); }); }); |
Цитата:
2. в jquery тоже нет toggle, про которое вы прочли в старой документации. замена тут http://javascript.ru/forum/jquery/40...tml#post263492 |
упустил часть кода:
$(function(){ $('#rollInOut').toggle( function(){ $('#block1').fadeOut(1000); $(this).text('Развернуть нижние 5 изображений'); }, function(){ $('#block1').fadeIn(1000); $(this).text('Свернуть нижние 5 изображений'); }); }); |
Так тут нет никаких событий, просто две ф-ции с синтаксической ошибкой.
$(function() { $('#rollInOut').click(function() { $('#block1').fadeToggle(1000); }); }); |
Ruslan_xDD,
как нет событий? Так сам toggle() - это и есть событие. |
Цитата:
|
В старых версиях - http://api.jquery.com/toggle-event/
В 1.9 удалено |
mytoggle old toggle
Valentin1918,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $.fn.mytoggle = function() { var b = arguments; return this.each(function(i, el) { var a = function() { var c = 0; return function() { b[c++ % b.length].apply(el, arguments) } }(); $(el).click(a) }) }; $(function() { $("#rollInOut").mytoggle(function() { $("#block1").fadeOut(1000); $(this).text("Развернуть нижние 5 изображений") }, function() { $("#block1").fadeIn(1000); $(this).text("Свернуть нижние 5 изображений") }) }); </script> </head> <body> <div id="rollInOut">Свернуть нижние 5 изображений</div> <div id="block1"> <div><img src="images/Logo/Logo.png"></div> <div><img src="images/Logo/Logo.png"></div> <div><img src="images/Logo/Logo.png"></div> <div><img src="images/Logo/Logo.png"></div> <div><img src="images/Logo/Logo.png"></div> </div> </body> </html> |
Valentin1918,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Короче сделал так:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Test2</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script type="text/javascript"> $(function(){ $('#rollInOut').click(function(){ $('#newBlock10').fadeToggle(); $('#newBlock11').fadeToggle("slow"); $('#newBlock12').fadeToggle(3000); }); }); </script> <style type="text/css"> #rollInOut { text-decoration: underline; margin-bottom: 10px; cursor: pointer; } </style> </head> <body> <div id="rollInOut">Убрать/показать нижние изображения</div> <div id="newBlock10"><img src="images/Logo/Logo.png"></div> <div id="newBlock11"><img src="images/Logo/Logo.png"></div> <div id="newBlock12"><img src="images/Logo/Logo.png"></div> </body> </html> Просто в этом куске кода я вообще ничего не понимаю: $.fn.mytoggle = function() { var b = arguments; return this.each(function(i, el) {6 var a = function() { var c = 0; return function() { b[c++ % b.length].apply(el, arguments) } }(); $(el).click(a) }) А использовать то, чего я еще не понимаю считаю неправильно. Всем спасибо за помощь. |
danik.js,
у тебя мания банить за одно и тоже десять раз ? |
Цитата:
|
Цитата:
|
danik.js,
считаю что ты не прав, и я снова опубликую этот код если у кого-то будет в нём потребность в старом toggle - сократил его до твоих любимых a,b,c $.fn.mytoggle = function() { var b = arguments; return this.each(function(d, c) { var a = function() { var a = 0; return function() { b[a++ % b.length].apply(c, arguments) } }(); $(c).click(a) }) }; считаю что данный код должен занимать как можно меньше места, потому что он достаточно элементарный для того кто понимает, а кто пока нет - у того он займёт меньше места. кому нужна подробность пусть идёт по твоей ссылке http://javascript.ru/forum/jquery/43...tml#post289163 |
Цитата:
|
danik.js,
ок без пробелов $.fn.mytoggle=function(){var b=arguments;return this.each(function(d,c){var a=function(){var a=0;return function(){b[a++%b.length].apply(c,arguments)}}();$(c).click(a)})}; |
Цитата:
Цитата:
Цитата:
|
danik.js,
input[type=checkbox]:not(old) что такое old и где об этом прочесть? |
Цитата:
|
danik.js, завязывай с флудом и матом. ;)
Я никого тут не поддерживаю, но пусть рони пишет так, как ему удобнее. То что он тут помогает новичкам бесплатно - это уже благое дело. Если автора что-то не устраивает, то пусть учит JS и называет переменные как ему нравится, или же в раздел "Работа" за идеальным кодом. |
Часовой пояс GMT +3, время: 22:38. |