2013-01-14 28 views
5

Ereignisse werden nur eingeblendet, aber manchmal muss ein benutzerdefiniertes Ereignis für ein übergeordnetes Element ausgelöst werden, damit alle Handler auf einem seiner untergeordneten Elemente aufgerufen werden, wenn an sie ein Listener gebunden ist. Was ist der beste Weg, dies in jQuery zu tun?bubble benutzerdefinierte Ereignisse nach unten

Antwort

2

so weit kam ich mit auf den Punkt:

$(startingParentElement).addBack().find('*').each(function(index,element){ 
    $(element).triggerHandler('myCustomEventName'); 
}); 
  • triggerHandler() das Ereignis sorgt dafür, nicht Blase wieder nach oben
  • each() ist erforderlich, weil triggerHandler() ist wird nur für das erste Objekt in der übereinstimmenden Sammlung ausgeführt
  • addBack() sorgt für einen Handler an die startingParentElement gebunden ist zu
+1

addBack() ist eine interessante Methode aufgerufen –