Выборка элемента меню
ситуация выбрать меню с открывающимся меню, подменю по умолчанию имеют в стиле display:none; при клике добавляю атрибут display:block;
как теперь выбрать элемент меню (и добавить ему класс) в котором открыто подменю: примерно мысль такая по выборке $("#menu li ul[style='display']").prev("#leftmenu li").addClass("tester"); Дерево меню(открытое) такое: <ul id="menu"> <li><a>text</a></li> [B]<li><a>text</a>[/B] <ul style="display:block;"><li><a>text</a></li></ul> </li> <li><a>text</a></li> нужно изменить стиль для li (выделен жрным) |
utb, обычно с меню что-то делают по неким событиям, происходящим в самом меню... Что мешает выделить нужный пункт меню вместе с открытием подменю?
Т.ч. твоя ситуация не совсем понятна... |
просто можно ли сделать такую выборку? а так в компонентах обычно указывается текущий активный элемент
|
Цитата:
<body onload='myFnk()'> так? |
не, выборка получается элемента содержащий др элемент с определенным атрибутом :) как то так
|
utb, я спрашивал "в какой момент" производится выборка? :)
Если по onload например, то можно сделать например так... <!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <!-- <link rel="stylesheet" type="text/css" href="tmp.css" /> --> <style type="text/css"> .tester { color: red; } </style> <script type="text/javascript"> $(document).ready(function(){ $('#menu > li > ul').each(function(){ if ($(this).css('display')=='block') { $(this).parent().children('a').addClass('tester'); }; }); }); </script> </head> <body> <ul id="menu"> <li><a>text</a></li> <li><a>text</a> <ul style="display:block;"> <li><a>text</a></li> </ul> </li> <li><a>text</a></li> </ul> </body> </html> |
Или вообще вот так...
<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <!-- <link rel="stylesheet" type="text/css" href="tmp.css" /> --> <style type="text/css"> .tester { color: red; } </style> <script type="text/javascript"> $(document).ready(function(){ $('#menu > li > ul:visible').parent().children('a').addClass('tester'); }); </script> </head> <body> <ul id="menu"> <li><a>text</a></li> <li><a>text</a> <ul style="display:block;"> <li><a>text</a></li> </ul> </li> <li><a>text</a></li> </ul> </body> </html> :dance: |
нет не сразу, вначале же не видно подменю, а вот когда появляется тогда и выборка.
спасибо, только для элемента li получается: $('#menu > li > ul:visible').parent().addClass('tester');? |
Цитата:
|
Как вариант...
<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <!-- <link rel="stylesheet" type="text/css" href="tmp.css" /> --> <style type="text/css"> #menu > li > ul { display: none; } li { cursor: pointer; } .tester { color: red; } </style> <script type="text/javascript"> $(document).ready(function(){ $('#menu > li > a').click(function (){ $(this).toggleClass('tester'); $(this).next('ul').toggle(); }); }); </script> </head> <body> <ul id="menu"> <li><a>text</a></li> <li><a>text</a> <ul> <li><a>text</a></li> </ul> </li> <li><a>text</a></li> </ul> </body> </html> |
Часовой пояс GMT +3, время: 20:03. |