поиск по всем элементам
Всем привет.
ЕСТЬ МЕНЮ. Необходимо сделать так чтобы при нажатии на ссылку все остальные сдвигались в сторону. а при нажатии следующего все возвращались на исходную позицию и кроме выбранного все сдвигались в сторону. Код:
<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, время: 07:33. |