2010-11-18 5 views
2

J'ai rencontré un problème de scintillement sur IE en raison de mouseover et de mouseout, donc j'ai changé le code pour survoler et vivre comme les données sont dynamiques à partir d'ajax.jquery live hover ne fonctionne pas

Mais le code suivant ne fonctionne pas, j'ai aussi la dernière jquery.

Le code suivant est exécuté sans erreur se mais ne fonctionne pas

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

Répondre

3

Si vous n'avez pas besoin de soutien IE6, aller avec @ solution de patrick absolument.

Si vous faire doivent soutenir: Il n'y a pas de surcharge 2 méthode pour .live() vous devez diviser comme ceci:

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

Ou, (bien que ce n'est pas dans les docs encore) dans jQuery 1.4 .3+ peut prendre une carte, comme ceci:

$('.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, le code ci-dessus ne fonctionne pas, par ailleurs son faisant le menu sur la page suivante scintille, le Abov Le code va aller vivre plus tard, mais les baisses comme les styles d'art, les sujets scintille sur IE si ont le code ci-dessus http://locwww.art.com/products/p12838878-sa-i2055985/vincent%20van%20gogh-almond% 20branches% 20in% 20bloom,% 20san% 20remy,% 20c.1890.htm? Sorig = cat & sorigid = 0 & dimvals = 23944 & ui = 29ccdb60b8304c9c8de9008b6c546003 – kobe

+0

@gov - Il scintille car il correspond à 'mouseover' et' mouseout' qui se déclenche même lors de l'entrée des enfants ... CSS n'est pas une option ici? Ou l'option de lier directement afin que vous puissiez * effectivement * utiliser 'mouseenter' et' mouseleave'? –

+0

@nick, à droite je peux le faire en ligne. – kobe

1

y at-il une raison de ne pas utiliser CSS pour cela? IE6 ne fonctionnera pas, mais la plupart des autres le feront.

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

EDIT: En regardant votre site, si elle est la zone de navigation que vous parlez, vous pouvez régler le balisage afin que vous avez un <a> l'intérieur de chaque <li> qui est étendu à toute la largeur et hauteur du <li>. De cette façon, IE6 pourrait être supporté (en plaçant le :hover sur le <a>).

1

liaison pour le vol stationnaire est possible, mais difficile:

Au jQuery 1.4.1 cas de vol stationnaire peut être spécifié (cartographie à mouseenter et mouseleave, qui, à leur tour, sont mis en correspondance mouseover et mouseout).

Vous devez utiliser une méthode unique et changer le comportement en fonction du type d'événement (exemple de code tiré de docs jQuery ainsi):

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

cela est vrai ...

$("#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 
    } 
});