|
|
|
| Есть такой код:
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<style>
.header { border-bottom: 1px dashed black; cursor: pointer; cursor: hand; }
#2, #3 { padding-top: 20px; }
.menu { width: 300px; height: 150px; background-color: black; color: white; display: none; }
</style>
<script>
function showLayer (divID) {
$(divID + " > .menu").slideToggle( "fast" );
var parentID = "???";
}
</script>
</head>
<div id="1">
<span class="header" onclick="showLayer('#1'); return false;">Новые идеи и решения</span>
<div class="menu">
Тут будет текст на чорном <br/>
</div>
</div>
<div id="2">
<span class="header" onclick="showLayer('#2'); return false;">Старые идеи и старые решения</span>
<div class="menu">
Нет, друзья, так не пойдет :(
</div>
</div>
<div id="3">
<span class="header" onclick="showLayer('#3'); return false;">И еще третий пункт меню</span>
<div class="menu">
Превеееееед :)
</div>
</div>
</html>
|
Можно ли каким-нибудь образом скриптом получить в переменную parentID идентификатор родителя для <span class="header"> (в моем случае родители это дивы #1, #2 и #3)? | |
|
|
|
|
|
|
|
для: aexb
(15.04.2008 в 17:02)
| | 1. значения ID НИКОГДА не должны начинаться с цифры - об этом здесь писалось много-много раз. Так что уберите ваше неправильное <div id="1">, и пропишите правильное - напримр, <div id="d1">
2. Если значение ID родительского элемента вы передадите БЕЗ ИСКАЖЕНИЙ в качестве аргумента функции (например, onclick="showLayer ('d1'); return false;", то получить родительский объект внутри функции showLayer (divID) будет элементарно: var objparent = document.getElementById (divID);. А уж ID родителя и получать не надо - это и есть переменная divID в функции. | |
|
|
|
|
|
|
|
для: aexb
(15.04.2008 в 17:02)
| | JQuery все упрощает
Я бы сделал вот так:
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<style>
.header { border-bottom: 1px dashed black; cursor: pointer; cursor: hand; }
#d2, #d3 { padding-top: 20px; }
.menu { width: 300px; height: 150px; background-color: black; color: white; display: none; }
</style>
</head>
<body>
<div id="list">
<div id="d1">
<span class="header" onClick="showLayer(); return false;">Новые идеи и решения</span>
<div class="menu">
Тут будет текст на чорном <br/>
</div>
</div>
<div id="d2">
<span class="header" onClick="showLayer(); return false;">Старые идеи и старые решения</span>
<div class="menu">
Нет, друзья, так не пойдет :(
</div>
</div>
<div id="d3">
<span class="header" onClick="showLayer(); return false;">И еще третий пункт меню</span>
<div class="menu">
Превеееееед :)
</div>
</div>
</div>
</body>
<script>
var list = $('#list').find('span');
list.click(function(){
var parentID = $(this).parents('div').attr('id');
$('#'+parentID).children('.menu').slideToggle( "fast" );
});
</script>
</html>
|
| |
|
|
|
|
|
|
|
для: ONYX
(16.04.2008 в 04:57)
| | Спасибо, про нахождение родителя понял.
Теперь следующий вопрос. Модернизировал код вот так:
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<style>
.header { border-bottom: 1px dashed black; cursor: pointer; cursor: hand; }
#d2, #d3 { padding-top: 20px; }
.menu { width: 300px; height: 150px; background-color: black; color: white; display: none; }
.visible { display: block; }
</style>
<script>
$(document).ready( function() {
$('span.header').click( function() {
var parentID = $('span.header').parents('div').attr('id');
alert (parentID);
});
});
</script>
</head>
<div id="d1">
<span class="header">Новые идеи и решения</span>
<div class="menu visible">
Тут будет текст на чорном <br/>
</div>
</div>
<div id="d2">
<span class="header">Старые идеи и старые решения</span>
<div class="menu">
Нет, друзья, так не пойдет :(
</div>
</div>
<div id="d3">
<span class="header">И еще третий пункт меню</span>
<div class="menu">
Превеееееед :)
</div>
</div>
</html>
|
То есть, я хочу вообще обойтись без обработчика onClick и перехватывать события клика на определенном элементе. Перехватывается, но алёрт каждый раз возвращает d. Как с помощью жыкваери отсматривать все элементы? | |
|
|
|
|
|
|
|
для: aexb
(16.04.2008 в 12:01)
| | Глухо аки в танке :( | |
|
|
|
|
|
|
|
для: aexb
(16.04.2008 в 19:33)
| | var parentID = $(this).parents('div').attr('id'); | |
|
|
|