как сделать несколько id в функции?

yurets86

Постоялец
Заблокирован
Регистрация
25 Сен 2011
Сообщения
135
Реакции
39
  • Автор темы
  • Заблокирован
  • #1
Доброго времени суток, подскажите, есть у меня функция
Код:
$('#cart').live('mouseleave', function() {
            $(this).removeClass('active');
        });

как мне в нее добавить еще один айдишник
Код:
#hello
, чтоб пока мышка на этих двух айдишниках была, - классы активны были ?
 
Доброго времени суток, подскажите, есть у меня функция
как мне в нее добавить еще один айдишник
Код:
#hello
, чтоб пока мышка на этих двух айдишниках была, - классы активны были ?
Код:
$('#cart, #hello').live('mouseleave', function() {
            $(this).removeClass('active');
});
 
  • Автор темы
  • Заблокирован
  • #3
Код:
$('#cart, #hello').live('mouseleave', function() {
            $(this).removeClass('active');
});
так пробывал, но почему то когда мышка выходит за область класс активный все ровно остается ...

полный код функции
Код:
$('#cart > .heading a').live('click', function() {
        $('#cart').addClass('active');
       
        $('#cart').load('index.php?route=module/cart #cart > *');
       
        $('#cart').live('mouseleave', function() {
            $(this).removeClass('active');
        });
    });
 
  • Автор темы
  • Заблокирован
  • #5
а где здесь #hello должно присутствовать?
вот и я спрашиваю, куда мне класс hello запилить, чтоб все работало так же как и без него, т.к. у меня блок hello абсолютным позиционированием помещен в блок cart, и как только я попадаю на hello, пропадает класс active, - что не есть хорошо, вот и надо как то сделать, чтоб было кликаем по карт, появляется класс active, и пока мы курсором на нем, он работает, и не пропадал, когда мы курсором попадаем на hello
 
вот и я спрашиваю, куда мне класс hello запилить, чтоб все работало так же как и без него, т.к. у меня блок hello абсолютным позиционированием помещен в блок cart, и как только я попадаю на hello, пропадает класс active, - что не есть хорошо, вот и надо как то сделать, чтоб было кликаем по карт, появляется класс active, и пока мы курсором на нем, он работает, и не пропадал, когда мы курсором попадаем на hello
чтобы после перемещения курсора с блока #cart на блок #hello класс не пропадал, нужно чтобы в html блок #hello находился внутри (по иерархии, а не просто позиционированием) блока #cart
иначе событие всегда будет вызываться.
 
  • Автор темы
  • Заблокирован
  • #7
чтобы после перемещения курсора с блока #cart на блок #hello класс не пропадал, нужно чтобы в html блок #hello находился внутри (по иерархии, а не просто позиционированием) блока #cart
иначе событие всегда будет вызываться.

да это я понимаю, не хотелось менять структуру движка, вот и скал костыли уже чтоб выкрутится с ситуации
 
да это я понимаю, не хотелось менять структуру движка, вот и скал костыли уже чтоб выкрутится с ситуации
есть очень костыльный вариант - в функцию mouseleave вставить задержку (через setTimeout) удаления класса active, которую чистить, если курсор попадает на #cart.
 
  • Автор темы
  • Заблокирован
  • #9
есть очень костыльный вариант - в функцию mouseleave вставить задержку (через setTimeout) удаления класса active, которую чистить, если курсор попадает на #cart.

а можно в примере, как это будет выглядеть ?
 
а можно в примере, как это будет выглядеть ?
Как -то так. Не уверен, будет ли именно это код работать, но принцип такой.
HTML:
var helloIsActive = false;
$('#hello').live('mouseenter', function() {
        helloIsActive = true;
});
$('#hello').live('mouseleave', function() {
        helloIsActive = false;
});

$('#cart > .heading a').live('click', function() {
    $('#cart').addClass('active');
     
    $('#cart').load('index.php?route=module/cart #cart > *');
      
    $('#cart').live('mouseleave', function() {
        setTimeout(function() {
            if(!helloIsActive) {
              $(this).removeClass('active');
            }
        }, 500);
    });
});
 
Назад
Сверху