2010-01-27 5 views
1

Итак, вот моя ситуация. У меня есть сайт wordpress, и каждая запись имеет ссылку в столбце post.Ориентация на родительский div с jQuery

<div class="post" id="post-133"> 
<h2><a href="post-link" rel="bookmark" title="Link to Post">Post</a></h2> 
<div class="post-date"> 
<span class="date">Tuesday, Jan. 26, 2010</span><span class="right read"><a href="#" class="noprint show_single" id="133">Read More</a></span> 
</div> 

У меня есть высота, применяемая к css, чтобы показывать только определенное количество каждого сообщения. Как я могу заставить jQuery указать родительский элемент для добавления класса, отображающего весь пост? Вот что я до сих пор. Я на правильном пути?

var $j = jQuery.noConflict(); 
var curr = (event.target).parent('div'); 
$j(function() { 
    $j('a.show_single').click(function() { 
$j('curr').toggleClass('show'); 
return false; 
    }); 
}); 

ответ

0

Внутри функции события, вы используете this чтобы попасть в нужный контекст, а затем перейдите через DOM, чтобы найти то, что вы ищете:

var $j = jQuery.noConflict(); 
$j(function() { 
    $j('a.show_single').click(function() { 
     $j(this).parents('div.post').toggleClass('show'); 
     return false; 
    }); 
}); 
+0

Ницца! Спасибо за помощь! – werm

0
var $j = jQuery.noConflict(); 
$j(function() { 
    $j('a.show_single').click(function() { 
     $j(this).parents('div.post').toggleClass('show'); 
     return false; 
    }); 
}); 
+0

Это не будет делать ничего, поскольку прямой паттерн 'a' t - 'span'. – SLaks

+0

Да, я понял это и отредактировал. –

0

Ваш вопрос остается неясным.

Предполагая, что вы хотите, чтобы переключить show класс div.curr, содержащий a, которая была нажата, вы можете вызвать метод closest, как это:

$j(this).closest('div.curr').toggleClass('show'); 
Смежные вопросы