2010-12-14 8 views
1

Ich habe große Tabelle mit vielen HTML-Elemente wie Auswahl, Textbox, Radio-Button, Kontrollkästchen. Ich habe auch eine Funktion. Ich möchte diese Funktion bei jeder Änderung des Elements aufrufen. Zum Beispiel wurde Auswahl geändert, oder ein Texttyp in Textfeld, oder klicken Sie auf Radiobutton. wie kann ich einfach abonnieren und meine js funktion aufrufen? Ich kannAnruf js Skript auf jedem Zustand der Änderung

onchange = 'function()'

in jedem Element einzufügen aber jquery werden mehr simly Weise lassen? irgendeine Probe?

Antwort

8

jQuery .change() Veranstaltung wird für alle Arten von Eingabeelementen arbeiten.

Aber für Effizienz, wenn Sie viele Elemente haben, können Sie in .delegate() aussehen wollen:

$('body').delegate('input', 'change', function() { 
    // in here, $(this) is the input that has changed 
}); 

Delegieren effizienter ist, da es nur einen einzigen Handler erzeugt und nutzt Ereignis sprudelnden .

0

In JQuery können Sie ein Ereignis .click() für die Elemente verwenden, die Sie ändern möchten. Zum Beispiel:

$("#the-element").click(function(){ 

//Enter your function here 

}); 

Hoffe, dass hilft!

+0

Das Ereignis .focus() kann auch nützlich sein, um zu beobachten, wenn Dinge in den Elementen vorkommen. –

0

Sie können eine jQuery selector verwenden, um alle Elemente einzubinden, an die das Ereignis angehängt werden soll. Verwenden Sie dann die Methode bind für diesen Wrapper, um Ereignisse anzuhängen.

Ein Beispiel:

$('input').bind({ 
    click: function() { 
    // do something on click 
    }, 
    mouseenter: function() { 
    // do something on mouseenter 
    } 
}); 
Verwandte Themen