Поместите 2 функции JQuery в 1 функцию - PullRequest
2 голосов
/ 01 декабря 2010

У меня есть две функции.Как я могу сделать из этого 2 JQuery эффекты / функции: 1 JQuery код.

// Function 1. For hover over the .landkaart
var hover = false;

$(".landkaart > ul > li > a").hover(function () {
    if ( hover == true ) {
        $(this).closest("li").removeClass('open');
        hover = false;
    }  else {
        $(".landkaart ul li .pijl").hide();

        $(this).closest("li").addClass('open');

        console.log(this);

        $(".pijl").show();
        hover = true;
    }
});    

// Interval for the .landkaart
var listitem = $(".landkaart > ul > li"),
    len = listitem.length,
    index = 0;

$(".landkaart > ul > li:first").addClass('open');

setInterval(function () {
    $(".landkaart > ul > li").removeClass('open');    
    if ( (index + 1) >= len ) {
        index = 0;
        $(".landkaart > ul > li:first").addClass('open');
    } else {
        listitem.eq(index).next().addClass('open');
    }
    index++;
}, 5000);

1 Ответ

0 голосов
/ 01 декабря 2010

Я не уверен, что именно вы хотите, поэтому я попытался оптимизировать ваш код.

Если вы делаете что-то более сложное в функции наведения, вы можете использовать trigger() внутри таймера для вызовафункция наведения (см. закомментированные строки), но на самом деле нет необходимости «комбинировать» функции, которые вы запрашиваете ( demo ):

CSS

.pijl { display: none; }
.open a { color: #f00; }
.open .pijl { display: inline-block; }

Сценарий

// Interval for the .landkaart
var listitem = $(".landkaart li"),
    len = listitem.length,
    index = 0,
    timer = setInterval(function() {
        index = (index + 1) % len;
        // use trigger to simulate a mouseenter and activate the hover event
        // listitem.eq(index).trigger('mouseenter');            
        // but it might be better to just do this:
        listitem.removeClass('open').eq(index).addClass('open');
    }, 5000);

listitem
    .hover(function() {
        listitem.removeClass('open');
        $(this).addClass("open");
    })
    .eq(0).addClass('open');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...