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

988voto

Eevee Punkte 45120
$('.class1, .class2').on('click', some_function);

Oder:

$('.class1').add('.class2').on('click', some_function);

Dies funktioniert auch mit bestehenden Objekten:

const $class1 = $('.class1');
const $class2 = $('.class2');
$class1.add($class2).on('click', some_function);

144voto

bzin Punkte 1781

Ich verwende normalerweise on 代わりに click . Es erlaubt mir, mehr Ereignisse Listener zu einer bestimmten Funktion hinzuzufügen.

$(document).on("click touchend", ".class1, .class2, .class3", function () {
     //do stuff
});

48voto

coolguy Punkte 7718
$('.class1, .class2').click(some_function);

Stellen Sie sicher, dass Sie ein Leerzeichen wie $('.class1,space here.class2') einfügen, sonst wird es nicht funktionieren.

19voto

code_burgar Punkte 11551

Verwenden Sie einfach $('.myclass1, .myclass2, .myclass3') für mehrere Selektoren. Außerdem benötigen Sie keine Lambda-Funktionen, um eine vorhandene Funktion an das Klick-Ereignis zu binden.

11voto

pim Punkte 10987

Eine weitere Alternative, vorausgesetzt, Ihre Elemente werden als Variablen gespeichert (was oft eine gute Idee ist, wenn Sie in einem Funktionskörper mehrfach auf sie zugreifen):

function disableMinHeight() {
    var $html = $("html");
    var $body = $("body");
    var $slideout = $("#slideout");

    $html.add($body).add($slideout).css("min-height", 0);
};

Nutzt die Vorteile der jQuery-Verkettung und ermöglicht die Verwendung von Referenzen.

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