2010-07-12 21 views
1

Je suis itérer div et modifier, supprimer des boutons dans ce ... Comment cacher les boutons de liaison sur mouseout et leur montrer sur la souris sur twitter exactement comme ........twitter comme effet de ligne actuel dans jquery?

$.each(data.Results, function() { 
        divs += '<div class="resultsdiv"><a href="Clients\Details' + this.ClientId + '">Edit</a><br/><a href="Clients\Details' + this.ClientId + '">Delete</a></div>'; 
       }); 
       $("#ResultsDiv").append(divs); 
       $(".resultsdiv:even").addClass("resultseven"); 
       $(".resultsdiv").hover(function() { 
        $(this).addClass("resultshover"); 
       }, function() { 
        $(this).removeClass("resultshover"); 
       }); 

et la est css:

.resultseven { background-color: #EFF1f1; } 
.resultshover { background-color: #F4F2F2; cursor:pointer; } 

Répondre

1

Vous pouvez trouver les enfants et les animer en utilisant .children(), comme ceci:

$.each(data.Results, function() { 
    divs += '<div class="resultsdiv"><a href="Clients\Details' + this.ClientId + 
      '">Edit</a><br/><a href="Clients\Details' + this.ClientId + 
      '">Delete</a></div>'; 
}); 
$("#ResultsDiv").append(divs); 
$(".resultsdiv:even").addClass("resultseven"); 
$(".resultsdiv").hover(function() { 
    $(this).addClass("resultshover").children('a').stop(true, true).fadeIn(); 
}, function() { 
    $(this).removeClass("resultshover").children('a').stop(true, true).fadeOut(); 
}); 

Ou, la version plus courte en utilisant .animate(), les cacher d'abord en CSS et faire ceci:

$(".resultsdiv").hover(function() { 
    $(this).toggleClass("resultshover") 
      .children('a').stop(true, true).animate({opacity: 'toggle'); 
}); 
0

Vous pouvez parcourir les enfants et les cacher

$.each(data.Results, function() { 
    divs += '<div class="resultsdiv"><a href="Clients/Details' + this.ClientId +  '">Edit</a><br/><a href="Clients/Details' + this.ClientId + '">Delete</a></div>'; 
}); 
$("#ResultsDiv").append(divs); 
$(".resultsdiv:even").addClass("resultseven"); 
$(".resultsdiv").children().hide(); 
$(".resultsdiv").hover(function() { 
    $(this).addClass("resultshover"); 
    $(this).children().show(); 
}, function() { 
    $(this).removeClass("resultshover"); 
    $(this).children().hide(); 
}); 
+3

2 choses ... vous les cachez en survol, donc c'est l'inverse, et '$ (this) .children(). each (function() {$ (this) .hide();}); 'peut simplement être' $ (this) .children(). hide(); ', ou enchaîné avec' .addClass() 'ci-dessus, ne créant pas un objet jQuery supplémentaire :) –

+0

Astuces pratiques - merci! – Metalshark

0

vous pouvez,

$.each(data.Results, function() { 
    var divs = '<div class="resultsdiv"><a href="Clients\Details' + this.ClientId + '">Edit</a><br/><a href="Clients\Details' + this.ClientId + '">Delete</a></div>'; 
    $(divs).hide(); 
    $(this).append(divs); 
    $('.resultdiv:even').addClass('resultseven'); 
    $(this).hover(function() { 
      $(this).find('.resultsdiv').show().addClass('resultshover'); 
     }, 
     function() { 
      $(this).find('.resultsdiv').hide().removeClass('resultshover'); 
     } 
    ); 
}); 

Je suppose que votre data.Results sont la liste des éléments. peut-être li