mirror of
https://github.com/jquery/jquery.git
synced 2025-01-10 18:24:24 +00:00
Rework #1486 patch to avoid try/catch
and look for hidden elements by .offsetWidth
. Unit test currently disabled due to Chrome bug.
This commit is contained in:
parent
ecd10464e8
commit
9aa553aa18
26
src/event.js
26
src/event.js
@ -387,23 +387,21 @@ jQuery.event = {
|
||||
|
||||
// Call a native DOM method on the target with the same name name as the event.
|
||||
// Can't use an .isFunction)() check here because IE6/7 fails that test.
|
||||
// IE<9 dies on focus to hidden element (#1486), may want to revisit a try/catch.
|
||||
try {
|
||||
if ( ontype && elem[ type ] ) {
|
||||
// Don't re-trigger an onFOO event when we call its FOO() method
|
||||
old = elem[ ontype ];
|
||||
// IE<9 dies on focus to hidden element (#1486)
|
||||
if ( ontype && elem[ type ] && elem.offsetWidth !== 0 ) {
|
||||
// Don't re-trigger an onFOO event when we call its FOO() method
|
||||
old = elem[ ontype ];
|
||||
|
||||
if ( old ) {
|
||||
elem[ ontype ] = null;
|
||||
}
|
||||
|
||||
jQuery.event.triggered = type;
|
||||
elem[ type ]();
|
||||
if ( old ) {
|
||||
elem[ ontype ] = null;
|
||||
}
|
||||
} catch ( ieError ) {}
|
||||
|
||||
if ( old ) {
|
||||
elem[ ontype ] = old;
|
||||
jQuery.event.triggered = type;
|
||||
elem[ type ]();
|
||||
|
||||
if ( old ) {
|
||||
elem[ ontype ] = old;
|
||||
}
|
||||
}
|
||||
|
||||
jQuery.event.triggered = undefined;
|
||||
|
@ -34,6 +34,31 @@ test("bind(),live(),delegate() with non-null,defined data", function() {
|
||||
|
||||
});
|
||||
|
||||
/*
|
||||
Removed because Chrome 13 snaps/crashes on this 2011-09-07
|
||||
|
||||
test("Handler changes and .trigger() order", function() {
|
||||
expect(1);
|
||||
|
||||
var markup = jQuery(
|
||||
'<div><p><b class="a">b</b></p></div>'
|
||||
).appendTo( "body" );
|
||||
|
||||
var path = "";
|
||||
jQuery( "b" ).parents().bind( "click", function(e){
|
||||
path += this.nodeName.toLowerCase() + " ";
|
||||
// Should not change the event triggering order
|
||||
$(this).parent().remove();
|
||||
});
|
||||
|
||||
markup.find( "b" ).trigger( "click" );
|
||||
|
||||
equals( path, "p div body html ", "Delivered all events" )
|
||||
|
||||
markup.remove();
|
||||
});
|
||||
*/
|
||||
|
||||
test("bind(), with data", function() {
|
||||
expect(4);
|
||||
var handler = function(event) {
|
||||
|
Loading…
Reference in New Issue
Block a user