2010-11-18 3 views
2

Я столкнулся с некоторой проблемой сбрасывания, связанной с IE, из-за мыши и мыши, поэтому я изменил код , чтобы зависать и жить, поскольку данные являются динамическими из ajax.jquery live hover не работает

Но следующий код не работает, я получил и последний jquery.

Следующий код становится выполняется без ошибок, но не работает

$('.cs-rec').live("hover", 
     function() {  
     $(this).find('.cs-title').css('text-decoration','underline'); 
     }, 
     function() { 
     $(this).find('.cs-title').css('text-decoration','none'); 
     } 
    ); 

ответ

3

Если вам не нужна поддержка IE6, пойти с @ Патрикс решение абсолютно.

Если вы сделать должны поддержать его: Там нет 2 способа перегрузки .live() вам нужно разделить так:

$('.cs-rec').live("mouseenter", function() {  
    $(this).find('.cs-title').css('text-decoration','underline'); 
}).live("mouseleave", function() { 
    $(this).find('.cs-title').css('text-decoration','none'); 
}); 

Или, (хотя это не в документации пока) в JQuery 1.4 .3+ может взять карту, например:

$('.cs-rec').live({ 
    mouseenter: function() {  
    $(this).find('.cs-title').css('text-decoration','underline'); 
    }, 
    mouseleave: function() { 
    $(this).find('.cs-title').css('text-decoration','none'); 
    } 
}); 
+0

@nick, приведенный выше код не работает, к тому же его сделать на следующей странице меню мерцает, в Abov e код пойдет вживую позже, но падает вниз, как стили искусства, предметы мерцают на IE, если имеют вышеуказанный код http://locwww.art.com/products/p12838878-sa-i2055985/vincent%20van%20gogh-almond% 20br% 20in% 20bloom,% 20san% 20remy,% 20c.1890.htm? Sorig = cat & sorigid = 0 & dimvals = 23944 & ui = 29ccdb60b8304c9c8de9008b6c546003 – kobe

+0

@gov - Он мерцает, потому что он отображает «mouseover» и «mouseout», которые срабатывают даже при входе в детей ... CSS не вариант здесь? Или вариант привязки напрямую, чтобы вы могли * на самом деле * использовать 'mouseenter' и' mouseleave'? –

+0

@nick, я могу сделать его встроенным. – kobe

1

Есть ли причина, по которой вы не используете CSS для этого? IE6 не будет работать, но большинство других будет.

.cs-red .cs-title { 
    text-decoration: none; 
} 
.cs-red:hover .cs-title { 
    text-decoration: underline; 
} 

EDIT: Глядя на ваш сайт, если навигационная область, что вы говорите, вы можете настроить разметку, так что у вас есть <a> внутри каждого <li>, который раскрывается на полную ширину и высота <li>.

Таким образом, IE6 может поддерживаться (размещение :hover на <a>).

1

Связывание парить можно, но сложно:

По JQuery 1.4.1 событие парения может быть задано (отображение на MouseEnter и MouseLeave, который, в свою очередь, отображаются в наведении курсора мыши и мышь).

Вы должны использовать один метод, а затем переключить поведение в зависимости от типа события (пример кода, взятый из JQuery документации, а):

$('.hoverme').live('hover', function(event) { 
    if (event.type == 'mouseenter') { 
     // do something on mouseover 
    } else { 
     // do something on mouseout 
    } 
}); 
0

это правда ...

$("#your_div_id").live('mouseover',function(){ 

    $(this).find(".child_div").css('background-color','#111111'); 

}).live('mouseout',function(){ 

    $(this).find(".child_div").css('background-color','#757575'); 
}); 
1
$('.edit_hover').live('hover', function(event) { 
    if (event.type == 'mouseenter') { 
    // first function here 
    } else { 
    // second function here 
    } 
});