Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Запретить обход DOM
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Запретить обход DOM

Страниц (1): [1]
 

1. DeepVarvar - 24 Ноября, 2011 - 08:40:04 - перейти к сообщению
Есть обычные вложенные списки ul li.
CODE (javascript):
скопировать код в буфер обмена
  1. $("#leftmenu li").click(function(){
  2.   $(this).find("ul").eq(0).toggle();
  3.   });

В таком виде тогглиться все что выше по дереву.
Есть ли какой метод в jquery запрещающий идти вверх по DOM и обрабатывать клик на родителе???
2. EuGen - 24 Ноября, 2011 - 08:45:09 - перейти к сообщению
http://api[dot]jquery[dot]com/children/

- быть может, это имелось ввиду? Тогда не нужно будет проверять - заранее будут только дочерные элементы.
3. SAD - 24 Ноября, 2011 - 08:50:50 - перейти к сообщению
stopPropagation ? o_O
4. DeepVarvar - 24 Ноября, 2011 - 09:36:11 - перейти к сообщению
EuGen пишет:
Тогда не нужно будет проверять
В моем случае какраз проверять придется...
5. tuareg - 24 Ноября, 2011 - 10:42:39 - перейти к сообщению
Если еще не решил. Выложи html разметку(можно простенькую) и что конкретно надо
6. DeepVarvar - 24 Ноября, 2011 - 12:14:26 - перейти к сообщению
Ветвления любые, вложенность любая...
Надо чтобы при клике на вложенный пункт (именно элемент li) событие не развинчивалось по DOM'у вверх. Как сделать по a понятно, но нужно сделать по li. Можно конечно обернуть все в "кликодив", если ничего не выйдет, так и сделаю, просто хотелось сделать без лишней разметки.
Спойлер (Отобразить)
7. CenapaTop - 24 Ноября, 2011 - 12:31:15 - перейти к сообщению
http://docs[dot]jquery[dot]com/Types/Eve[dot][dot][dot]ropagation[dot]28[dot]29
event.stopPropagation() ?
8. tuareg - 24 Ноября, 2011 - 12:33:27 - перейти к сообщению
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('#leftmenu').on('click','li',null,function(event){
  3.         event.stopPropagation();
  4.         console.log($(this));
  5.  
  6. });
  7.  

Это для >1.7, <1.7 delegate
9. DeepVarvar - 24 Ноября, 2011 - 13:08:02 - перейти к сообщению
CODE (javascript):
скопировать код в буфер обмена
  1. $("#leftmenu").delegate("li","click",function(){
  2.   $(this).find("ul").eq(0).toggle();
  3.   });

каждый написал по своему, но ни один вариант не заработал как надо.
В общем сработал симбиоз который я разместил выше...
tuareg ближе всех был, плюсую. Закатив глазки
10. DeepVarvar - 24 Ноября, 2011 - 13:17:29 - перейти к сообщению
Вот так оно выглядит:
11. tuareg - 24 Ноября, 2011 - 14:55:19 - перейти к сообщению
Конечно за плюс спасибо. Только что-то я не понял, почему не сработал мой вариант.
Я не случайно просил разметку этот код работал на этой разметке.
Ну да ладно Улыбка

 

Powered by ExBB FM 1.0 RC1