2010-05-08 2 views
0

Эй, у меня есть список с помощью ул и Ли:jQuery | Нажмите ребенка, скрывает родитель

<span class="important">Show/Hide</span> 

<div id="important" class="hidden"> 
    <ul class="sub"> 
    <li> 
      Value one 
     </li> 
     <li class="child"> 
      <img src="../img/close.png" /> 
     </li> 
    </ul> 
</div> 

$(".important").click(function() { 
    $("#important").slideToggle("fast"); 
}); 

Когда ребенок (класс = «ребенок») щелкнули, она должна скользить вверх DIV (ID =» важно "), тем не менее, есть и другие списки, которые имеют разные идентификаторы, я хочу ДИВ скользить вверх, когда ребенок нажал

Я сделал это:

$(".child").click(function() { 
    $(".child < div").slideUp("fast"); 
}); 

у меня нет идеи, как это сделать работа, я сделал другие комбинации, похоже, не может этого сделать.

ответ

3

Вы можете сделать это с помощью .closest(), как этот

$(".child").click(function() { 
    $(this).closest("div").slideUp(); 
}); 

Это идет от .child вы нажали вверх по опрятных <div> предка и сползает его. Если вы можете иметь другие дивы между ребенком и родителем, то я предлагаю давая <div> вы сделать покупки закрыт классом, и изменяя ближайший призыв искать для конкретного <div>, как это:

$(".child").click(function() { 
    $(this).closest("div.classToClose").slideUp(); 
}); 
+0

Wow, спасибо за этот метод :) – Jamie

0

I подумайте, что вам нужен селектор «: parent», в вашем случае это будет:

$ (". child: parent"). slideUp ("fast");

Для других селекторов, пожалуйста, посмотрите на: http://api.jquery.com/category/selectors/

1

я хотел бы использовать селектор parent(), это лучший (мое мнение) способ сделать STH как это :)

Смежные вопросы