2017-04-12 2 views
0

Ich habe einen jQuery Selector. Dieser arbeitet.jQuery Selector funktioniert nicht

var table_1 = '#table_1 td'; 

$(table_1).keyup(function(){ 
    //Some Array Push 
}); 

Dies ist nicht. Ist meine Syntax falsch?

var table_1; 

$('#add_button').click(function(){ 
    table_1 = '#table_1 td'; 
}); 

$(table_1).keyup(function(){ 
    //Some Array Push 
}); 

Antwort

1

Die Syntax ist in Ordnung, aber die Logik ist fehlerhaft. Wenn im zweiten Beispiel der Code ausgeführt wird (und die keyup-Funktion gebunden ist), lautet table_1undefined. Da der jQuery-Selektor keine Elemente auswählt, sind sie selbst nicht an irgendetwas gebunden. Sie definieren table_1 nicht, bis das Klickereignis ausgeführt wird.

+0

Angenommen, das Klickereignis ist aufgetreten, trotzdem funktioniert der Selektor nicht. Aber ich habe eine alternative Lösung für mein Problem gefunden. Vielen Dank. – Jhay

2

Der Grund, warum dies nicht, weil im zweiten Beispiel keyup Ereignis mit undefined bind wurde arbeitet als table_1 Variable den Wert nach Klick erhält nur.

Es ist nicht notwendig, table_1 als var zu verwenden und zu verwenden. Stattdessen können Sie das Ereignis binden und lösen, wenn Sie nicht möchten, dass sie ausgeführt werden.

$('#add_button').click(function(){ 
    $('#table_1 td').on('keyup',function(){ 
    //Some Array Push 
    }); 
}); 
1

weil Sie der Tabelle_1 var einen Wert innerhalb der Funktion '#add_button' gegeben haben. Sie müssen einen Wert angeben, bevor Sie den Keyup-Ereignis-Listener aufrufen.