поиск по всем элементам
Всем привет.
ЕСТЬ МЕНЮ. Необходимо сделать так чтобы при нажатии на ссылку все остальные сдвигались в сторону. а при нажатии следующего все возвращались на исходную позицию и кроме выбранного все сдвигались в сторону. Код:
<div id="main"> и если не равно то сдвинуть. Я правильно начал делать. А как мне определить текущую. var div = document.getElementById('main') var elems = div.getElementsByTagName('*') for(var i=0; i<elems.length; i++) Заранее спасибо. |
Цитата:
Цитата:
|
Почему, а как сделать.
Как сохранить нажатую позицию Как пройтись по всем элементам Я понимаю вам смешно ,что я не знаю такие мелочи, сам я недавно начал изучать js. а я вот какой день мучаюсь. и ни фига ничего не хочет получаться. А так вот само задание Требуется создать список <ul>ссылок <a> со след.функциональностью: 1. При клике на ссылку все остальные сдвигаются в сторону. 2. При клике на другую ссылку сначала все возвращаются на исходную позицию, а затем сдвигаются относительно текущей, как в п. 1. 3. После клика на ссылке в ее текст добавляется в конец счетчик кликов (например, «Ссылка [2]»), а при каждом клике значение счетчика увеличивается. До первого клика ссылка счетчика не имеет («Ссылка»). 4. После достижения порогового значения счетчика кликов (5) ссылка исчезает из списка. |
Цитата:
Цитата:
Цитата:
Сколько заплатишь за реализацию того "задания"? |
Я хочу попробовать :)
$(document).ready(function () { var maxclicked = 4; // на четвертом клике ссылка исчезает $('#menu li').append('<span></span>').data('clicked',0); //добавляем счетчик в текстовом виде и в виде переменной $('#menu li').click(function () { $(this).data('clicked', $(this).data('clicked') + 1); if ($(this).data('clicked') == maxclicked) { $(this).remove(); return; } $(this).children('span:last').html('[' + $(this).data('clicked') + ']'); $(this).removeClass('left'); $(this).parent().children().not(this).addClass('left'); }); }); left будет классом для сдвига элементов списка влево left { margin-left: 5em } |
Если я правильно понял задачу то вам надо что-то вроде этого
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> li { padding: 0.5em 0; } li.active~li { padding-left: 1em; } </style> </head> <body> <ul id="main"> <li><a href="#">Lorem ipsum dolor</a></li> <li><a href="#">Lorem ipsum dolor</a></li> <li><a href="#">Lorem ipsum dolor</a></li> <li><a href="#">Lorem ipsum dolor</a></li> <li><a href="#">Lorem ipsum dolor</a></li> <li><a href="#">Lorem ipsum dolor</a></li> <li><a href="#">Lorem ipsum dolor</a></li> </ul> <script> var currentListItem; document.getElementById('main').addEventListener('click', function(e){ if ( e.target.nodeName.toLowerCase() != "a" ) return; e.preventDefault(); var listItem = e.target.parentNode; if ( currentListItem ) currentListItem.className = (" " + currentListItem.className + " ").replace(" active ", " ").trim(); if ( currentListItem === listItem ) return; listItem.className = (listItem.className + " active").trim(); currentListItem = listItem; }, false); </script> </body> </html> |
Часовой пояс GMT +3, время: 03:28. |