2010-11-25 10 views
1

Ich habe einen div #basket, der mit der JQuery slideDown-Funktion angezeigt wird.Wie schließe ich bestimmte Klicks von stopPropagation() aus? Jquery

Um die div zurück zu schieben, kann der Benutzer auf eine beliebige Stelle auf der Seite klicken.

Natürlich möchte ich nicht das Div geschlossen werden, wenn ein Benutzer in es klickt. So verwende ich:

$("#basket").click(function (e) { 

    e.stopPropagation(); 
}); 

nun das Problem, das ich habe, ist, dass eine Form, in der div enthalten ist und diese löscht alle Klick- Funktionen innerhalb des div.

Gibt es eine Möglichkeit, dieses div zu schließen, indem Sie auf die Seite klicken, ohne alle Klicks zu löschen?

+0

Was sind Ihre Formular Event Handler, die dies stoppt? –

+0

Sind Sie sicher, dass Ihre Form in diesem div ist und nicht außerhalb? 'e.stopPropagation()' stoppt nur die Weiterleitung von Ereignissen in der DOM-Struktur. Wenn Sie also einen Knoten innerhalb von #basket haben, sollte das Ereignis immer noch abgefangen werden. – Grassator

Antwort

0

Werfen Sie einen Blick auf event.target: http://api.jquery.com/event.target/

Dieses Sie das Ereignis auf feuert innerhalb des Click-Handler, welches Element überprüfen können und entsprechend handeln.

+0

Dies ist ziemlich mehrdeutig, nicht wirklich eine klare Lösung, da das '.target' ein beliebiges untergeordnetes Element sein wird ... das bringt Sie nur zu einem Drittel des Weges zu der Prüfung, die Sie durchführen müssen. –

+0

Hmm, ich sehe was du jetzt meinst. Nun, in diesem Fall bin ich daran interessiert, eine Lösung für die anderen 2/3 zu sehen. –

Verwandte Themen