Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.09.2009, 12:50
Аспирант
Отправить личное сообщение для constantant Посмотреть профиль Найти все сообщения от constantant
 
Регистрация: 30.07.2008
Сообщений: 87

не назначается bind после unbind
В общем смысл скрипта такой: имеется див с классом .unlock при клике на него отменяются обработчики события для определённых классов, а сам элемент меняет класс на .lock. А клике снова на тот же элемент но с классом .lock - назначаются обработчики тем элементам с которых они были сняты.
делаю я это следующим образом (может не правильно):
function add_events(){
	$('.e').bind('click',ex)
	$('.ifp').bind('mouseover',movf)
	$('.ifp').bind('mouseout',motf)
	$('.ifp').bind('mouseup',muf)
	$('.om:has(~.ulc)').bind('mouseover',movo)
	$('.om:has(~.ulc)').bind('mouseout',moto)
	$('.om:has(~.ulc)').bind('mousedown',mdno)
	$('.om:has(~.ulc)').bind('mouseup',muo)
	$('.no:has(~.ulc)').bind('click',act)
	$('.hd:has(~.ulc)').bind('click',hd)
	$('.uhd:has(~.ulc)').bind('click',hd)
	$('.ulc').click(function(){
		$(this).toggleClass('ulc').toggleClass('lc')
		$('.om:has(~.lc)').unbind('mouseover',movo)
		$('.om:has(~.lc)').unbind('mouseout',moto)
		$('.om:has(~.lc)').unbind('mousedown',mdno)
		$('.om:has(~.lc)').unbind('mouseup',muo)
		$('.no:has(~.lc)').unbind('click',act)
		$('.hd:has(~.lc)').unbind('click',hd)
		$('.uhd:has(~.lc)').unbind('click',hd)
		})
	$('.lc').click(function(){
		$(this).toggleClass('ulc').toggleClass('lc')
		$('.om:has(~.ulc)').bind('mouseover',movo)
		$('.om:has(~.ulc)').bind('mouseout',moto)
		$('.om:has(~.ulc)').bind('mousedown',mdno)
		$('.om:has(~.ulc)').bind('mouseup',muo)
		$('.no:has(~.ulc)').bind('click',act)
		$('.hd:has(~.ulc)').bind('click',hd)
		$('.uhd:has(~.ulc)').bind('click',hd)
		})
	}

так вот unbind работает, а bind - нет
Ответить с цитированием
  #2 (permalink)  
Старый 14.09.2009, 13:13
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Что за тильда перед классом ucl? Код ужасный, читайте доки по jQuery.
Ответить с цитированием
  #3 (permalink)  
Старый 14.09.2009, 13:17
Аспирант
Отправить личное сообщение для constantant Посмотреть профиль Найти все сообщения от constantant
 
Регистрация: 30.07.2008
Сообщений: 87

Сообщение от Octane
Что за тильда перед классом ucl?
в общем .om:has(~.ulc) означает: элемент с классом .om имеющий брата с классом .ulc
разве не так надо? если нет, то как?
Ответить с цитированием
  #4 (permalink)  
Старый 14.09.2009, 14:02
Аспирант
Отправить личное сообщение для constantant Посмотреть профиль Найти все сообщения от constantant
 
Регистрация: 30.07.2008
Сообщений: 87

проблему решил)
Ответить с цитированием
  #5 (permalink)  
Старый 14.09.2009, 18:42
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Сообщение от constantant Посмотреть сообщение
в общем .om:has(~.ulc) означает: элемент с классом .om имеющий брата с классом .ulc
разве не так надо? если нет, то как?
Не так. '.om ~ .ulc' -- так
Ответить с цитированием
  #6 (permalink)  
Старый 15.09.2009, 08:02
Аспирант
Отправить личное сообщение для constantant Посмотреть профиль Найти все сообщения от constantant
 
Регистрация: 30.07.2008
Сообщений: 87

Сообщение от e1f
Не так. '.om ~ .ulc' -- так
из описания:
Цитата:
siblings(prev, siblings)
Matches all sibling elements after the "prev" element that match the filtering "siblings" selector.
а у меня .ulc стоит после .om, так что конструкция '.om ~ .ulc' не работает, а моя работает
Ответить с цитированием
  #7 (permalink)  
Старый 15.09.2009, 13:21
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Ага. Да, тогда так работает. Правда, хорошо бы потестить производительнось Sizzle на таких специфических селекторах.
Ответить с цитированием
  #8 (permalink)  
Старый 15.09.2009, 13:59
Аспирант
Отправить личное сообщение для constantant Посмотреть профиль Найти все сообщения от constantant
 
Регистрация: 30.07.2008
Сообщений: 87

Сообщение от e1f
хорошо бы потестить производительнось Sizzle на таких специфических селекторах
лучше задать это вопрос непосредственно в jQuery или Sizzle
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
firefox зависает после обновления страницы constantant Firefox/Mozilla 4 14.09.2009 12:30
Объект при загрузке страницы и после операций над ним fact jQuery 7 20.04.2009 22:02
Не срабатывает bind(и click) после load (или get) dijah jQuery 3 27.01.2009 20:05
Восстановление работоспособности JavaScript после Exception в xhtml no_alex Events/DOM/Window 13 03.12.2008 13:47
Выполнить код после загрузки изображения EugenyK Events/DOM/Window 2 15.07.2008 10:09