Найти родителя с заданным классом и блок, идущий за ним
На странице есть много подобных участков, 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, время: 20:20. |