Ich versuche, einen $('body').live('click')
Listener hinzuzufügen, nachdem der Benutzer auf ein div geklickt hat. Der Zweck besteht darin, eine benutzerdefinierte Dropdown-Box zu erstellen, die der Benutzer öffnen und schließlich schließen kann, indem er auf eine beliebige Stelle auf der Seite klickt.Die Verwendung von .live ('click') innerhalb einer .click() - Funktion löst sich aus
Aber wenn ich hinzufügen .live()
oder .bind()
Funktion innerhalb einer .click()
Funktion, die live()
Funktion aus irgendeinem Grund ausgelöst:
$('#myDiv').click(function(){
$('#myDiv .child').show().addClass('showing');
$('body').live('click', function(){
$('#myDiv .child').hide();
$('body').die();
})
})
#myDiv
gezeigt wird, aber sofort versteckt, belegt durch die anhalt .showing
Klasse.
Bin ich mit live()
falsch? Wie vermeide ich diese Rekursion?
erklären, was Sie eher versuchen zu tun, als zu erklären, was Sie gerade tun Darüber hinaus können Sie
.one()
für einen einmaligen Ereignishandler verwenden. Vielleicht können wir eine Alternative anbieten, anstatt einen möglicherweise fehlerhaften Code zu reparieren. – Joseph