Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.03.2012, 01:29
Профессор
Отправить личное сообщение для Nanto Посмотреть профиль Найти все сообщения от Nanto
 
Регистрация: 21.12.2010
Сообщений: 243

Ограничить область действия функции
Если есть куча клонированных элементов с одинаковыми классами, как ограничить область функции (чтобы классы "работали" как идентификаторы)?
Т.е. пример:
<!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>
Ответить с цитированием
  #2 (permalink)  
Старый 27.03.2012, 01:51
Аспирант
Отправить личное сообщение для atlantis Посмотреть профиль Найти все сообщения от atlantis
 
Регистрация: 18.03.2012
Сообщений: 95

$(document).ready(function(){
    $(".a").click(function(){
        $(this).children(".b").css("display", "block");
    });
});

Должно работать.
Ответить с цитированием
  #3 (permalink)  
Старый 27.03.2012, 01:53
Профессор
Отправить личное сообщение для Nanto Посмотреть профиль Найти все сообщения от Nanto
 
Регистрация: 21.12.2010
Сообщений: 243

Кроме этого:
$(this).parents(".a").find(".b")

Можно как-то поэлегантнее? Т.е. заранее определить область действия нужных функций, и либо использовать сокращённую запись, либо дёргать функцию с параметрами?
Ответить с цитированием
  #4 (permalink)  
Старый 27.03.2012, 01:59
Профессор
Отправить личное сообщение для Nanto Посмотреть профиль Найти все сообщения от Nanto
 
Регистрация: 21.12.2010
Сообщений: 243

atlantis,
да вот далеко не всегда инициализатор функции является родителем для "манипулируемого" элемента, чаще даже потомком или хрен знает каким "племянником".
Ну ладно, нашёл-таки функцию parents.
Но блин, неужто все таким "пердимоноклем" пишут?

Последний раз редактировалось Nanto, 27.03.2012 в 02:17.
Ответить с цитированием
  #5 (permalink)  
Старый 27.03.2012, 03:18
Профессор
Отправить личное сообщение для Nanto Посмотреть профиль Найти все сообщения от Nanto
 
Регистрация: 21.12.2010
Сообщений: 243

nasqad,
Да Вы что?
У Вас есть более элегантное решение, как наплодить кучу одинаковых элементов?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Область видимости функции DenQ jQuery 16 17.12.2013 08:15
Установить имя конструктора Андрей Параничев Общие вопросы Javascript 8 17.11.2011 09:09
arguments вызвавшей функции mister_maxim Общие вопросы Javascript 4 12.10.2010 16:21
Область видимости внутри функции YISHIMITSY Общие вопросы Javascript 1 25.08.2010 06:50
Подскажите, как работает простой код (замыкание функции)? Dotod Общие вопросы Javascript 5 02.12.2009 04:03