Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.08.2014, 10:15
Аспирант
Отправить личное сообщение для Александр222 Посмотреть профиль Найти все сообщения от Александр222
 
Регистрация: 24.04.2014
Сообщений: 55

Событие .hover и .click на одном элементе, конфликт.
Здравствуйте.
Подскажите пожалуйста, как правильно написать код, чтобы не было конфликта между событиями .hover и .click на одном элементе.
На десктопной версии используется событие .hover, а на мобильных девайсах .click.

Первая проблема:
Ховер срабатывает по классу которого нет.
Изначально присваивается класс ('as-item-hover') на котором есть событие .hover, и при определенных условиях он снимается.

Вторая проблема:
Событие .click присваивает тот же класс, что и событие .hover .
при клике не присваивается класс, из-за того что срабатывает ховер.

function aboutSteps(){
	var wNowWidth = $(window).width();

	if(wNowWidth >= 940){
		$(".as-item").addClass('as-item-hover');
	}
	else{
		$('.as-item-hover').removeClass('as-item-hover');
	}

	$(".as-item-hover").stop(true,true).hover(
		function(){
			$(this).addClass('as-item-focus');
		},function(){
			$(this).removeClass('as-item-focus');
		}
	);

	$(".as-item").click(function(){
		if(wNowWidth <= 939){
			if($(this).hasClass('as-item-focus')){
				$(this).removeClass('as-item-focus');
			}
			else{
				$('.as-item-focus').removeClass('as-item-focus');
				$(this).addClass('as-item-focus');
			}
		}
		return false
	});
}

Последний раз редактировалось Александр222, 29.08.2014 в 11:27.
Ответить с цитированием
  #2 (permalink)  
Старый 29.08.2014, 10:50
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Что за конфликт?
Ответить с цитированием
  #3 (permalink)  
Старый 29.08.2014, 11:11
Аспирант
Отправить личное сообщение для Александр222 Посмотреть профиль Найти все сообщения от Александр222
 
Регистрация: 24.04.2014
Сообщений: 55

Ховер срабатывает по классу которого нет.
Изначально присваивается класс ('as-item-hover') на котором есть событие .hover, и при определенных условиях он снимается.
А событие .hover при этом остается, это первая проблема.

Событие .click присваивает тот же класс, что и событие .hover .
Вторая проблема при клике не присваивается класс, из-за того что срабатывает ховер.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить на каком элементе произошло событие hover(или mouseenter)? Boshnik Оффтопик 10 24.03.2014 11:04
Событие onclick выполняется на первом элементе preanik jQuery 2 03.08.2013 19:45
меню с действием .click и .hover через if / else vooduq jQuery 2 10.06.2013 18:29
в содержимом окна FancyBox не работает событие .click() rafic jQuery 4 01.11.2011 16:59
Помогите сменить событие .hover на .click serdeles jQuery 2 22.11.2010 17:07