Jquery, как проверить, является ли текущий HAVED Div EQ (X) - PullRequest
0 голосов
/ 05 мая 2010

Я пытаюсь создать функцию наведения jQuery, которая будет подсвечивать другой раздел страницы в зависимости от того, какой номер EQ (номер позиции индекса) равен div.

Что я хочу сделать, так это сказать: «когда вы наводите курсор на div #photoContent, проверьте его номер эквалайзера. Если это Xth div, выделите Yth p на боковой панели»

    $('#photoContent div').hover(function () {  
        if( $(this).filter(':lt(5)') ) {
            $('#photoSidebar').find('p:eq(0)').addClass('currentPhoto');
        }

        if( $(this).filter(':gt(5)') ) {
            $('#photoSidebar').find('p:eq(1)').addClass('currentPhoto');
        }
    }, function () {
        $('#photoSidebar').find('p').removeClass('currentPhoto');
    });

Приведенный выше код, очевидно, не выполняет этого, но концепция / функциональность - это то, к чему я стремлюсь. Спасибо за вашу помощь!

Ответы [ 3 ]

3 голосов
/ 05 мая 2010

Во-первых, hoverIntent не является встроенным событием jQuery. Вы имеете в виду hover(fnOver, fnOut)?

Во-вторых, вы можете переписать операторы if, чтобы явно проверить совпадение:

if($(this).is(":lt(5)")) { 
    $('#photoSidebar p').eq(0).addClass('currentPhoto');
}

if($(this).is(":gt(5)")) {
    $('#photoSidebar p').eq(1).addClass('currentPhoto');
} 

OR

var idx = $(this).index();
if(idx > 5) { 
    $('#photoSidebar p').eq(0).addClass('currentPhoto');
}

if(idx < 5) {
    $('#photoSidebar p').eq(1).addClass('currentPhoto');
} 

Кроме того, это просто мой стиль, но почему бы не использовать обычные кавычки " вместо одинарных кавычек?

2 голосов
/ 05 мая 2010

Полагаю, я нашел то, что искал, используя свойство index ():

    var divIndex = $(this).index();
        if (divIndex<=4) {
              //...
        }

Это помогло: В Jquery, как вы узнаете «eq» элемента того, что нажимается?

0 голосов
/ 05 мая 2010

Я не уверен, почему ваш код не работает, кроме пользователя hoverIntent, как указал Джефф, но это немного запутанно, учитывая, что все это в одном документе, не могли бы вы пойти с

$('#photoContent div').hover(function () {    
    if( $(this).filter(':lt(5)') ) {
        $('#photoSidebar p:eq(0)').addClass('currentPhoto');
    }

    if( $(this).filter(':gt(5)') ) {
        $('#photoSidebar p:eq(1)').addClass('currentPhoto');
    }

    $('#photoSidebar p').removeClass('currentPhoto');
});

Я не уверен, почему этот последний бит тоже был функцией, поскольку вы, вероятно, хотите, чтобы он срабатывал только тогда, когда он завис.

Я не уверен, что вышесказанное сработает, так как я очень незнаком с методом filter (), но выглядит примерно так. это приближает тебя?

...