2015-10-19 21 views
0

我意識到產品的字母搜索。在點擊字母時,顯示由該字母開始的所有產品。 但我會把它放在信件的頂部,然後隱藏。jQuery,計數懸停兒童和顯示結果

我不得不使用函數hover()和append()ans如何?

這是我的代碼:

_alphabets.hover(function(){ 
var _letter = $x(this), _text = $x(this).text(), _count = 0; 

_contentRows.removeClass("lignetrouve"); 

_contentRows.each(function(i) { 
var _cellText = $x(this).children('td').eq(0).text(); 
if (RegExp('^' + _text).test(_cellText)) { 
_count += 1; 
list = $x(this).addClass("lignetrouve"); 
} 

}); /*end _contentRows.each(function(i) */ 

//we count number of child 
_nblignes = $x('.lignetrouve').length; 

//display 
$x('.compteur').append(_nblignes); 

}) 

感謝。

回答

0

我發現:

_alphabets = $x('.alphabet > a'); 
_contentRows = $x('#produits-table tbody tr'); 


_alphabets.click(function() { 
    var _letter = $x(this), _text = $x(this).text(), _count = 0; 
    //Ajout de la class active a la lettre plutot qu'a l'alphabet entier 
    _alphabets.removeClass("active"); 
    _letter.addClass("active"); 
    _contentRows.removeClass("lignetrouve"); 


    if (($x('#noproduct').length == 0) && ($x('.lignetrouve').length == 0)) { 
    $x('tbody').append('<tr id="noproduct"><td>Aucun produit</td></tr>'); 
    }; 

    _contentRows.hide(); 

    _contentRows.each(function(i) { 
     //Affectation de la variable celltext qui contient le contenu 
     var _cellText = $x(this).children('td').eq(0).text(); 
     //Si le debut commence comme la lettre selectionnée 
     if ( RegExp('^' + _text).test(_cellText)) { 
      _count += 1; 
      list = $x(this).fadeIn(400); 
      list.addClass("lignetrouve"); 
      $x('#noproduct').remove(); 

     } 

    _nblignes = $x('.lignetrouve').length; 

    $x(this).attr('data-title',_nblignes); 


    }); /*end _contentRows.each(function(i) */ 


}); /*end _alphabets.click(function() */ 

_alphabets.hover(function(){ 
    _contentRows.removeClass("lignetrouve"); 

    var _letter = $x(this), _text = $x(this).text(), _count = 0; 


    _contentRows.each(function(i) { 

     var _cellText = $x(this).children('td').eq(0).text(); 


     if ( RegExp('^' + _text).test(_cellText)) { 
      _count += 1; 
      //on ajoute une class pour le calcul 
      list = $x(this).addClass("lignetrouve"); 

     } 
    }); /*end _contentRows.each(function(i) */ 


    _nblignes = $x('.lignetrouve').length; 


    $x(this).attr('data-title',_nblignes); 

}); /*end _alphabets.hover(function() */ 

Jsfiddle