Ограничить область действия функции
Если есть куча клонированных элементов с одинаковыми классами, как ограничить область функции (чтобы классы "работали" как идентификаторы)?
Т.е. пример: <!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, время: 04:26. |