2012-08-21 4 views
1

Я хочу изменить изображение в разных таблицах td. Я хочу изменить его с помощью javascript, потому что я использую переменную сеанса PHP для 4-х разных языков. Это означает, что у меня будет 8 разных изображений для одной ячейки таблицы (2 изображения для 1 языка, нормальное изображение и изображение наведения).jquery mouseenter - mouseleave не работает

У меня есть следующий код:

var jsGlobalLang = "<?php echo $_SESSION['lang'];?>"; 

$(".menu-item").mouseenter(function(){ 

    var item_id = ""; 

    switch(this.id) 
    { 
     case 'home' : { item_id = "acasa";break; } 
     case 'proiectaredecasa' : { item_id = "proiectare";break; } 
     case 'caseconstruite' : { item_id = "case_construite";break; } 
     case 'avantaje' : { item_id = "avantaje";break; } 
     case 'oferte' : { item_id = "oferte";break; } 
    } 

    $(this).html("<img src='images/lang/"+ jsGlobalLang +"_" + item_id + "_hover.gif' alt='' />"); 
}); 

Это работает, но когда я съехать мышь, функция не работает. Я попытался вызвать alert(); чтобы проверить, появилось ли окно предупреждения, но это не так.

$(".menu-item").mouseout(function(){ 
    alert('TEST !'); 
}); 
+2

Вам не хватает 's'. – Imp

+0

мой плохой ... отредактированный. спасибо –

ответ

0

Ну я думаю, что если заменить HTML в тд

$(this).html("<img src='images/lang/"+ jsGlobalLang +"_" + item_id + "_hover.gif' alt='' />"); 

Там нет MouseOut от $(".menu-item"), поскольку нет ни одного элемента с классом = .menu-item

Я не проверял это, но это может быть так.

1

Я считаю, что в этой ситуации вам нужно использовать mouseleave, а не mouseout

$(".menu-item").mouseleave(function(){ 
    alert('TEST !'); 
}); 

или использовать mouseover вместо mouseenter.

+0

Не должно быть разницы :) http://www.mkyong.com/jquery/different-between-mouseout-and-mouseleave-in-jquery/ –

+0

Ну, будет разница, поскольку тег 'img' добавлен как ребенок '.menu-item', правый (hmmmm теперь я должен исследовать: P) – locrizak

1

Какую версию jQuery вы используете? Я использую последний, и, кажется, есть некоторые проблемы с отведением указателем мышью/MouseLeave

http://bugs.jquery.com/ticket/12366

Будет ждать, пока они не исправить это?

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