Per gli altri che ottengono qui che non vogliono modificare il sorgente di jQuery ... (PER L'AMORE DI DIO non lo faccio)
Questo succede in < 9 durante l'attivazione di eventi personalizzati. Se hai accesso all'evento prima che arrivi al punto in cui si verifica l'arresto anomalo, spostati nella catena di eventi originale e imposta l'ultima = {};
Il seguente codice si riferisce a quando si sta facendo affidamento su jQuery per elaborare il valore di ritorno dei gestori di eventi (false
) da qualche parte lungo la catena. Se si desidera annullare l'evento qui, vedere i commenti - avvolgere una chiamata a e.stopPropagation()
in un blocco try/catch
var handleAndFire = function(e) {
var ev = new $.Event('stack.overflow');
//you may have to debug and manually inspect to see how
//deep the originalEvents go
//or you could write your own function to traverse
//depth first and find it automatically, I'm lazy.
e.originalEvent.originalEvent = {}; //fix for ie < 9
ev.originalEvent = e;
$(document).trigger(ev);
}
$(document).click(handleAndFire);
si può aggiungere la modifica come risposta? –
Nel file jquery-1.6.2.js, riga 3172, ho commentato 'e.cancelBubble = true; 'e inserito ' if (typeof e.cancelBubble! == 'unknown') {e.cancelBubble = true; } '. In altre parole, una leggera modifica del file jQuery originale. – maan81
Siamo spiacenti. Volevo aggiungere il codice: commentato - 'e.cancelBubble = true;' e inserito - 'if (typeof e.cancelBubble! == 'unknown') {e.cancelBubble = true; } ' – maan81