Помогите решить вопрос
Доброго времени суток.
Проблема заключается в следующем. У нас есть вот такая страница с элементами: ![]() По клику на один из этих элементов ему присваивается класс, но при клике на другой у первого этот класс удаляется и присваивается тому на который кликнули, и т.д. Т.е. класс должен по клику на какой либо элемент удаляться у того элемента которому присвоен, и добавляться элементу на который кликнули. Заранее спасибо! |
<style>
#myblock>div {
width:30%;
height: 50px;
border: 2px solid #000;
margin: 5px;
display: inline-block;
}
.active {
background-color: red;
}
</style>
</head>
<body>
<div id="myblock">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
<script>
var el, target;
myblock.onclick = function (e) {
e = e || window.event;
target = e.target || e.srcElement;
if (target.id =="myblock") return;
el && (el.className = '');
target.className = 'active';
el = target;
}
</script>
</body>
|
Poznakomlus,
спасибо большое, а нет решения на JQuery? |
<head>
<style>
#myblock>div {
width:30%;
height: 50px;
border: 2px solid #000;
margin: 5px;
display: inline-block;
}
.active {
background-color: red;
}
</style>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.js'></script>
</head>
<body>
<div id="myblock">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
<script>
jQuery(function($){
$('#myblock').on('click', 'div', function () {
$(this).addClass('active').siblings().removeClass('active');
});
});
</script>
</body>
|
Poznakomlus, еще раз огромное спасибо. А можно ли как нибудь сделать что бы класс еще удалялся по клику на сторонний элемент, а к примеру на ссылку с классом .close
|
|
Poznakomlus, оно самое! Огромное спасибо!
Только кнопка находится в каждом из этих дивов, при нажатии на неё у дива удаляется класс вот так http://learn.javascript.ru/play/sQQnxb |
up
|
Peter007, отмените всплытие из $('div .close')
event.stopPropagation() |
|
| Часовой пояс GMT +3, время: 17:02. |