Проблемка с 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)
})
А использовать то, чего я еще не понимаю считаю неправильно. Всем спасибо за помощь. |
| Часовой пояс GMT +3, время: 01:52. |