#jquery
#jquery
Вопрос:
У меня есть 4 ссылки, при нажатии на каждую ссылку я беру индекс этой ссылки. У меня получается index 1 = 1, 2, 3 4
вот так. По моему мнению, когда пользователь нажимает на ссылку, индексированный ‘li’ должен исчезнуть, сброс должен исчезнуть. итак, какая бы ссылка не была нажата в соответствии с индексом ссылки 1, она должна исчезнуть, остальное не должно отображаться в представлении. для этого я написал этот код, но он не работает. что не так с моим кодом?
$('#b-fmg-slider a').each(function(index){
$(this).click(function(e){
$('#b-fmg-slider a').removeAttr('class');
$('#b-fmg-slider ul li').fadeOut();
$('#b-fmg-slider ul li',':nth-child(' index 1 ')').fadeIn();
})
})
может ли кто-нибудь сказать, является ли то, что я здесь делаю, неправильным?
заранее спасибо.
Комментарии:
1. Вам не нужно использовать
.each()
при назначении обработчиков событий. Simply$('#b-fmg-slider a').click(function...
сделает то же самое.
Ответ №1:
Когда вы передаете второй параметр, вы фактически предоставляете jQuery контекст для работы
$('#b-fmg-slider ul li',':nth-child(' index 1 ')').fadeIn();//does not work
Просто используйте индекс и фильтр
var i = $(this).index();
$('#b-fmg-slider ul li:eq(' i ')').fadeIn();
Вот простая скрипка:http://jsfiddle.net/WU7Tt /
Комментарии:
1. Я бы упростил это до
$('#b-fmg-slider li').eq(i).fadeIn();
; впрочем, это не важно.
Ответ №2:
Этого можно очень легко достичь, используя альтернативный подход. Сначала отключите все элементы (используя селектор класса), затем fadeIn $(this)
(элемент, на который был нажат).
Что касается того, почему ваш код неправильный, вы используете два отдельных селектора (если вы разделяете их запятой, они являются отдельными селекторами).
Ответ №3:
Попробуйте что-то вроде этого:
$('#b-fmg-slider a').click(function (e) {
$('#b-fmg-slider ul li').fadeOut();
$(this).parent('li').next('li').fadeIn();
});
Вычеркиваем все li-ы, а затем находим li, на который вы нажали (если он не является прямым потомком, используйте parents() вместо parent()), затем находим следующий за ним — чтобы вписать его.
Комментарии:
1. Есть только один родительский элемент, вам не нужно передавать строку.