2017-05-19 1 views
0

Ich habe diese Funktion:Geht .find() von dem Element aus, an dem es verwendet wird, oder vom Start des Dokuments?

$.fn.search = function() 
{ 
    $(document).on('change', 'input, select', function() { 
     $(this).find('.step').data('changed', 1); 
    }); 
}; 

$.fn.search(); 

wie Sie können alle es tut, hört für Änderungen an den Eingängen und wählt (dynamisch erzeugt - daher die $(document) und wenn eine Änderung gefunden wird einen Daten-Tag zum nächsten div hinzufügen

.

aber es ist nicht das Daten-Tag zuweisen.

mir dies impliziert, dass .find() sucht von dem Element nach unten, anstatt das Dokument Anfang. ist dies der Fall, oder ist es nur mein Code falsch?

Dank

Antwort

2

Die find() Methode Suche nach dem Abkömmling Elemente anstelle dieser Verwendung closest() Methode die nächsten Vorfahren zu bekommen.

$(document).on('change', 'input, select', function() { 
    $(this).closest('.step').data('changed', 1); 
}); 
+1

Ah ich sehe, also finde Abstieg? Sinn macht :) wird Ihre Antwort als akzeptiert markieren, wenn ich kann – ThisGuyHasTwoThumbs

+0

Der wichtige Punkt hier ist das "Dies" innerhalb einer Delegiertenbindung ist das Element, aus dem das Ereignis stammt, nicht das Elternelement die Delegate Bindung gebunden ist. – Taplar

Verwandte Themen