2017-07-01 2 views
2

Der Versuch, den Fokus basierend auf dem Benutzerklick auf eine bestimmte Tabellenzeile zu verschieben.jquery Festlegen der Tabellenzeilenfokus

<script> 
    $(function(){ 
     $('.filter').click(function(){ 
      var id = $(this).attr('id'); 
      var row = "post_"+id; 

      //alert(row) == post_1234 

      $('#'+row).find('tr').focus(); 
     }); 
}); 
</script> 

<table id='activity'> 
    <tr id='1234' class='filter'><td>Some Data</td></tr> 
    <tr id='1234' class='filter'><td>Some Data</td></tr> 
    <tr id='1234' class='filter'><td>Some Data</td></tr> 
</table> 

//Tons of data that scrolls down page quite a distance.. 

<table> 
<tr id='post_1234'><td>...</td></tr> 
<tr id='post_1235'><td>...</td></tr> 
<tr id='post_1236'><td>...</td></tr> 
</table> 

Ich habe versucht:

$('.filter').click(function(){ 
    var id = $(this).attr('id'); 
    var row = "post_"+id; 

    //alert(row) == post_1234 

    $('#'+row).find('tr').focus(); 
}); 

nichts tut

$('#'+row).focus(); 

auch nichts tut.

Die Warnung wird korrekt ausgelöst, wenn die richtige ID angezeigt wird.

als Test ich dies tat:

$('#'+row).find('td').addClass('someClass'); 

und hinzugefügt richtig Klasse.

Was fehlt mir?

+0

bearbeitet Frage weitere Informationen aufzunehmen. – bart2puck

Antwort

0

Möglicherweise müssen Sie das in Tabelle wie unten oder focus direkt finden. Ich habe den Fokus auf CSS geändert, um die Ausgabe zu sehen.

$('.filter').on('click', function() { 
 
    var id = $(this).attr('id'); 
 
    var row = "post_" + id; 
 
    console.log(row); 
 
    // $("table").find($("#" + row).css("color", "red")); //Use this 
 
    $("#" + row).css("color", "red"); //Or this 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table id='activity'> 
 
    <tr id='1234' class='filter'> 
 
    <td>Some Data</td> 
 
    </tr> 
 
    <tr id='1234' class='filter'> 
 
    <td>Some Data</td> 
 
    </tr> 
 
    <tr id='1234' class='filter'> 
 
    <td>Some Data</td> 
 
    </tr> 
 
</table> 
 

 
<table> 
 
    <tr id='post_1234'> 
 
    <td>...</td> 
 
    </tr> 
 
    <tr id='post_1235'> 
 
    <td>...</td> 
 
    </tr> 
 
    <tr id='post_1236'> 
 
    <td>...</td> 
 
    </tr> 
 
</table>

+0

ok, ich habe gerade das Gleiche gemacht. Anstatt Fokus habe ich gerade eine Klasse hinzugefügt, um die Hintergrundfarbe zu ändern. das hat gut funktioniert. der "focus" scheitert, nicht das Finden des tr ... – bart2puck

+0

@ bart2puck Focus-Ereignis ist implizit auf einen begrenzten Satz von Elementen anwendbar, wie zum Beispiel Formularelemente (,