Ich stieß zuvor auf das Problem von sprudelnden Ereignissen, also suchte ich im Internet, und die meisten von ihnen waren der gleiche Code, und es war nicht sehr reibungslos, es zu verwenden. Wenn es um FF geht, können Sie E.StopPropagation () verwenden; , und irgendwie habe ich es versäumt, erfolgreich zu sein. Ich stellte jedoch fest, dass FF die Schreibmethode von E. cancelBubble = true unterstützt, was nach dem Testen machbar ist. Veröffentlichen Sie einfach den Code hier, damit Sie es vermeiden können, in Zukunft überall zu suchen. Die Kompatibilität früherer IE -Versionen wurde noch nicht getestet, daher werde ich sie verbessern, wenn ich sie benutze.
Die Codekopie lautet wie folgt:
// Ereignisblase abbrechen
Funktion stopbubble (e) {
var evt = (e)? E: window.event; // kompatibel mit FF
evt.cancelBubble = true; //evt.stoppropagation (); Um Blasen unter FF zu verhindern, soll es nützlich sein
};
Andere:
1. CancelBubble (HTML DOM -Ereignisobjekteigenschaft): Wenn das Ereignishandle verhindern möchte, dass sich das Ereignis an das inklusive Objekt ausbreitet, muss die Eigenschaft auf True gesetzt werden.
2. StopPropagation (HTML -DOM -Ereignisobjektmethode): Das Beendigungsereignis wird während der Erfassung, der Zielverarbeitung oder der Blasenstufe des Ausbreitungsprozesses weiter verbreitet. Nach dem Aufrufen dieser Methode wird der Handler auf dem Knoten, der das Ereignis behandelt, und das Ereignis wird nicht mehr an andere Knoten geschickt.
3.. PREVEDDEFAULT (HTML DOM -Ereignisobjektmethode) benachrichtigt den Browser, keine Standardaktionen auszuführen, die mit Ereignissen verbunden sind.
Beispiel:
Funktion Stopbubble (e)
{
if (e && e.stoppropagation)
E.Stoppropagation ()
anders
window.event.cancelBubble = true
}
Legen Sie diese Funktion "Stopbubble (E) in die Funktion, die Sie verhindern möchten, dass das Ereignis sprudelt.