Найти родителя с заданным классом и блок, идущий за ним
На странице есть много подобных участков, div с класом "one" внутри которых ссылка с классом "two":
<div class="one">
<table>
<tr>
<td><a class="two" href="#">Заметки</a></td>
<td><a href="#">Подробнее</a></td>
</tr>
</table>
<div class="123"></div>
</div>
<div class="todisplay"></div>
И jquery:
$(".two").click(
function() {
$(".todisplay").css("display","block");
}
);
Как изменить код jquery, чтобы ("display","block") срабатывало только на "todisplay" идущем сразу за div внутри которого была нажата сслыка "two"? Т.е. чтобы все остальные блоки "todisplay" оставались невидимыми. |
$(".two").click(
function() {
$(this).closest(".one").next().css("display","block");
}
);
|
Хм... Я бы использовал parents('.one')... e1f,
чем было бы хуже? |
e1f,
inGray, спасибо, работает, буду знать про обе функции. Еще возникла проблема, при нажатии на ссылку срабатывает не только js но и href="#", как это можно решить? |
$(".two").click(
function(e) {
$(this).closest("div.one").next().css("display","block");
(e = e || window.event).preventDefault? e.preventDefault() : (e.returnValue = false);
}
);
|
Если обработчик устанавливается через jQuery, в IE объекту события дописывается метод
preventDefault().http://forum.jquery.com/topic/event-...default-and-ie |
exec,
спасибо, работает. Эта строчка это какай-то вид сокращенной записи js ? subzey, не совсем понял где мне прописывать preventDefault(), или в этом случае (e = e || window.event).preventDefault? e.preventDefault() : (e.returnValue = false); уже это прописанно? |
Тут же все написано...
если существует preventDefault , то preventDefault, иначе (e.returnValue = false) |
inGray,
я к тому, что он всегда существует при таком раскладе :) |
хм.. Досоздается то, что МС не доделали? :) Похвально )
|
| Часовой пояс GMT +3, время: 00:57. |