Ограничить область действия функции
Если есть куча клонированных элементов с одинаковыми классами, как ограничить область функции (чтобы классы "работали" как идентификаторы)?
Т.е. пример:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".a span").click(function(){
$(".b").css("display", "block");
});
});
</script>
<style type="text/css">
.a{
position:relative;
width:100px;
height:100px;
border:1px solid #000;
}
.b{
display:none;
position:absolute;
width:50px;
height:50px;
top:25px;
left:25px;
background:red;
}
.a span{
position:absolute;
bottom:2px;
right:2px;
text-decoration:underline;
cursor:pointer;
}
</style>
</head>
<body>
<div class="a">
<div class="b"></div>
<span>Клик</span>
</div>
<div class="a">
<div class="b"></div>
<span>Клик</span>
</div>
<div class="a">
<div class="b"></div>
<span>Клик</span>
</div>
</body>
</html>
|
$(document).ready(function(){
$(".a").click(function(){
$(this).children(".b").css("display", "block");
});
});
Должно работать. |
Кроме этого:
$(this).parents(".a").find(".b")
Можно как-то поэлегантнее? Т.е. заранее определить область действия нужных функций, и либо использовать сокращённую запись, либо дёргать функцию с параметрами? |
atlantis,
да вот далеко не всегда инициализатор функции является родителем для "манипулируемого" элемента, чаще даже потомком или хрен знает каким "племянником". Ну ладно, нашёл-таки функцию parents. Но блин, неужто все таким "пердимоноклем" пишут? |
nasqad,
Да Вы что? У Вас есть более элегантное решение, как наплодить кучу одинаковых элементов? |
| Часовой пояс GMT +3, время: 06:17. |