Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 17.04.2013, 18:09
Аватар для Алек
Аспирант
Отправить личное сообщение для Алек Посмотреть профиль Найти все сообщения от Алек
 
Регистрация: 14.04.2013
Сообщений: 85

Всё, вроде разобрался, после того как свершилось событие click true изменилось на false и произошло действие fadeOut, а после этого если кликнем ещё раз false изменится на true и произойдёт действие fadeIn.
Но назначение return false мне не очень понятно, а его закомментировал, скрипт прекрасно выполняется.
Ответить с цитированием
  #12 (permalink)  
Старый 17.04.2013, 18:15
Аватар для Алек
Аспирант
Отправить личное сообщение для Алек Посмотреть профиль Найти все сообщения от Алек
 
Регистрация: 14.04.2013
Сообщений: 85

Всё, вроде разобрался, после того как свершилось событие click true изменилось на false и произошло действие fadeOut, а после этого если кликнем ещё раз false изменится на true и произойдёт действие fadeIn.
Но назначение return false мне не очень понятно, я его закомментировал, скрипт прекрасно выполняется.
Ответить с цитированием
  #13 (permalink)  
Старый 17.04.2013, 18:16
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Сообщение от Алек
return false
Это для универсальности) Часто вешают событие на ссылку, с href='#', а потом удивляются что ничего не работает. return false отменяет действие по умолчанию события click.
Ответить с цитированием
  #14 (permalink)  
Старый 17.04.2013, 18:31
Аватар для Алек
Аспирант
Отправить личное сообщение для Алек Посмотреть профиль Найти все сообщения от Алек
 
Регистрация: 14.04.2013
Сообщений: 85

Да точно, я такое видел событие click вешали на ссылку для того чтоб валидно было открывать страницу в новом окне, я не совсем сначала это понимал, но походу разницу в написании target="blank" и target="_blank" пытались компенсировать js.
Других причин для этого я не вижу, для изменения стиля ссылки легче использовать css a:hover и a active

Последний раз редактировалось Алек, 17.04.2013 в 18:35.
Ответить с цитированием
  #15 (permalink)  
Старый 08.08.2013, 04:21
Новичок на форуме
Отправить личное сообщение для Akella79 Посмотреть профиль Найти все сообщения от Akella79
 
Регистрация: 08.08.2013
Сообщений: 2

$('#formHide').click(function() {
$('#my_form').toggle("slow");
($(this).text()=='Развернуть')?$(this).t ext('Cвернуть'):$(this).text('Развер уть');
});

Последний раз редактировалось Akella79, 08.08.2013 в 04:24.
Ответить с цитированием
  #16 (permalink)  
Старый 08.08.2013, 17:52
Аватар для Алек
Аспирант
Отправить личное сообщение для Алек Посмотреть профиль Найти все сообщения от Алек
 
Регистрация: 14.04.2013
Сообщений: 85

Akella79,
У меня версия jquery-1.9.1, там метод .toggle не работает, приходится использовать конструкцию со state:
$(function(){
var state = true;
$('#gallery_1').click(function(){
	if(state){
		$('#gallery').show('slide', 1000, function(){
			$('#gallery_1').attr('value','Скрыть галерею')
		});	
	}
	else{
		$('#gallery').hide('explode', 1000, function(){
			$('#gallery_1').attr('value','Показать галерею')		
		});	
	}
	state = !state; 
})
});

Это лучший метод решения данного вопроса, взял его из http://jqueryui.com/animate/
Ответить с цитированием
  #17 (permalink)  
Старый 09.08.2013, 03:22
Новичок на форуме
Отправить личное сообщение для Akella79 Посмотреть профиль Найти все сообщения от Akella79
 
Регистрация: 08.08.2013
Сообщений: 2

Версия *! jQuery v1.10.2
В версии jquery-1.9.1 должно тоже работать, там синтаксис самой функции немного поменялся,
http://api.jquery.com/toggle/
fadeOut FadeIn не нужно прописывать, toggle сама это делает,
вот пример
$('#clickme').click(function() {
  $('#book').toggle('slow', function() {
    // функция по завершению анимации
//тут можно прописать смену атрибутов т.е Показать/скрыть 
  });
});

первый параметр скорость сворачивания/ разворачивания

Последний раз редактировалось Akella79, 09.08.2013 в 03:26.
Ответить с цитированием
  #18 (permalink)  
Старый 10.11.2013, 12:45
Аспирант
Отправить личное сообщение для Apollon Посмотреть профиль Найти все сообщения от Apollon
 
Регистрация: 01.11.2013
Сообщений: 42

Тогда уж лучше сразу так написать

$('#formHide').click(function(){
if ($('#formHide').text() == 'Свернуть форму'){
$('#my_form').slideUp(1000);
$(this).text('Развернуть форму')}

else {
$('#my_form').slideDown(1000);
$(this).text('Свернуть форму');}
});

Тут хоть время выполнения эффекта задать можно.
Да испортили разработчики toggle.
Ответить с цитированием
  #19 (permalink)  
Старый 10.11.2013, 12:49
Аспирант
Отправить личное сообщение для Apollon Посмотреть профиль Найти все сообщения от Apollon
 
Регистрация: 01.11.2013
Сообщений: 42

$('#clickme').click(function() {
$('#book').toggle('slow', function() {
// функция по завершению анимации
//тут можно прописать смену атрибутов т.е Показать/скрыть
});
});
Тогда показать/скрыть применится к $('#book'), а как я понимаю надо бы к $('#clickme')
Ответить с цитированием
  #20 (permalink)  
Старый 10.11.2013, 13:29
Аспирант
Отправить личное сообщение для Apollon Посмотреть профиль Найти все сообщения от Apollon
 
Регистрация: 01.11.2013
Сообщений: 42

Еще можно сделать так, вставьте код ниже в jquery и toggle будет работать, как раньше
jQuery.fn.toggle = function( fn, fn2 ) {
  // Don't mess with animation or css toggles
  if ( !jQuery.isFunction( fn ) || !jQuery.isFunction( fn2 ) ) {
    return oldToggle.apply( this, arguments );
  }
  // migrateWarn("jQuery.fn.toggle(handler, handler...) is deprecated");
  // Save reference to arguments for access in closure
  var args = arguments,
  guid = fn.guid || jQuery.guid++,
  i = 0,
  toggler = function( event ) {
    // Figure out which function to execute
    var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
    jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
    // Make sure that clicks stop
    event.preventDefault();
    // and execute the function
    return args[ lastToggle ].apply( this, arguments ) || false;
  };
  // link all the functions, so any of them can unbind this click handler
  toggler.guid = guid;
  while ( i < args.length ) {
    args[ i++ ].guid = guid;
  }
  return this.click( toggler );
};
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена значения в store страно работает I3ev ExtJS 0 09.12.2012 14:22
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
Не работает код внутри циклов DZHETIGAPA Events/DOM/Window 1 21.06.2011 01:03
ява-скрипт выборочно работает-не работает zeta777 Internet Explorer 0 20.01.2010 11:41
Динамическая HTML форма (FireFox - работает, IE - не работает) dm1tr1y Общие вопросы Javascript 10 11.12.2009 15:59