514 Stimmen

jQuery gleiche Klick-Ereignis für mehrere Elemente

Gibt es eine Möglichkeit, denselben Code für verschiedene Elemente auf der Seite auszuführen?

$('.class1').click(function() {
   some_function();
});

$('.class2').click(function() {
   some_function();
});

stattdessen etwas zu tun wie:

$('.class1').$('.class2').click(function() {
   some_function();
});

Danke

9voto

frzsombor Punkte 1854

Wenn Sie Ihre Elemente als Variablen (jQuery-Objekte) haben oder behalten wollen, können Sie auch eine Schleife über sie ziehen:

var $class1 = $('.class1');
var $class2 = $('.class2');

$([$class1,$class2]).each(function() {
    $(this).on('click', function(e) {
        some_function();
    });
});

5voto

Nitin Pawar Punkte 253

Wir können auch wie folgt codieren, ich habe hier das Ereignis blur verwendet.

$("#proprice, #proqty").blur(function(){
      var price=$("#proprice").val();
      var qty=$("#proqty").val();
      if(price != '' || qty != '')
      {
          $("#totalprice").val(qty*price);
      }
  });

4voto

Dev Punkte 435

Fügen Sie eine durch Komma getrennte Liste von Klassen wie folgt hinzu:

jQuery(document).ready(function($) {

$('.class, .id').click(function() { 

//  Your code

    }

});

1voto

Andrii Bogachenko Punkte 1105

Ich habe einen Link zu einem Objekt, das viele Eingabefelder enthält, die von demselben Ereignis behandelt werden müssen. Ich verwende also einfach finden() um alle inneren Objekte zu erhalten, die das Ereignis haben müssen

var form = $('<form></form>');
// ... apending several input fields

form.find('input').on('change', onInputChange);

Falls Ihre Objekte eine Ebene tiefer liegen, ist die Verbindung Kinder() stattdessen finden() Methode verwendet werden kann.

1voto

Arkhaine Punkte 131

Zusätzlich zu den ausgezeichneten Beispielen und Antworten oben können Sie auch eine Suche nach zwei verschiedenen Elementen anhand ihrer Klassen durchführen. Zum Beispiel:

<div class="parent">
<div class="child1">Hello</div>
<div class="child2">World</div>
</div>

<script>
var x = jQuery('.parent').find('.child1, .child2').text();
console.log(x);
</script>

Dies sollte "HelloWorld" ausgeben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X