2014-01-02 6 views
0

Я пытаюсь настроить таргетинг a.click в код ниже с помощью jQuery. Когда нажата кнопка a.click, p.excerpt должен скользить вниз под ней.Не удалось направить дочерний элемент, но штраф на родителя

По какой-то причине jQuery ничего не делает, когда я нацелен a.click - ничего не происходит при нажатии. Однако, если я нацелен на родительский div, slidingown работает отлично.

Любые идеи, что я делаю неправильно?

Вот HTML:

<div class="listing"> 
    <div class="col-xs-4 title"> 
     <strong><a class="click">The Title</a> </strong> 
     <p class="excerpt">The Excerpt.</p> 
    </div> 
</div> 

Вот JQuery, не работает:

jQuery(".listing .title a.click").click(function() { 
    jQuery("p.excerpt", this).slideToggle("slow", function() { 
    }); 
}); 

Вот JQuery, который работает отлично:

jQuery(".listing .title").click(function() { 
    jQuery("p.excerpt", this).slideToggle("slow", function() { 
    }); 
}); 

ответ

3

Ваш селектор находится в правильной , Попробуйте:

jQuery(".listing .title a.click").click(function(e) { 
    e.preventDefault(); 
    jQuery(this).parent().next("p.excerpt").slideToggle("slow", function() { 
    }); 
}); 

Вам нужно перейти к родителю якоря, а затем следующий элемент к нему является p.excerpt элемента. Используя синтаксис jQuery("p.excerpt", this), вы ищете p.excerpt, которые являются потомками элемента a.click. (в этом обработчике представляет собой анкерный элемент)

+0

Отлично, спасибо за вашу помощь. BTW - что делает e.preventDefault()? – user1444027

+1

@ user1444027 Он используется только для предотвращения поведения по умолчанию для привязки, который полезен, когда у вас есть 'href = #' большую часть времени в вашем привязном элементе. – PSL

+0

Получил, еще раз спасибо! – user1444027

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