[wp-trac] [WordPress Trac] #24667: Widgets admin broken in IE7

WordPress Trac noreply at wordpress.org
Mon Jul 1 10:18:49 UTC 2013


#24667: Widgets admin broken in IE7
--------------------------+-----------------------------
 Reporter:  diddledan     |      Owner:
     Type:  defect (bug)  |     Status:  new
 Priority:  normal        |  Milestone:  Awaiting Review
Component:  Widgets       |    Version:  3.5.2
 Severity:  normal        |   Keywords:
--------------------------+-----------------------------
 As per the thread here: http://wordpress.org/support/topic/widgets-admin-
 in-ie7

 Widgets drag-and-drop does not work in '''''IE7'''''. The widget
 successfully appears in the sidebar after drag but the page does not save
 the new layout. Pre-existing widgets stay unchanged and any newly added
 widgets (to any sidebar) disappear after a page reload indicating they're
 not being saved.

 (This may be incorrect on my assumption, but..) I believe the issue is due
 to the ID disappearing off the widget at the start of a drag action,
 meaning any further interactions with the widget are lost because the ID
 has been lost. The error message that IE7 produces at the drop action is
 as follows:

 '''"'attr(...)' is null or not an object"'''

 The related piece of code which causes the IE7 error message is in
 widgets.js line 146:

 {{{
 140     receive: function(e, ui) {
 141             var sender = $(ui.sender);
 142
 143             if ( !$(this).is(':visible') ||
 this.id.indexOf('orphaned_widgets') != -1 )
 144                     sender.sortable('cancel');
 145
 146             if ( sender.attr('id').indexOf('orphaned_widgets') != -1
 && !sender.children('.widget').length ) {
 147                     sender.parents('.orphan-sidebar').slideUp(400,
 function(){ $(this).remove(); });
 148             }
 149     }
 }}}

 note the first part of the if statement uses the return value of
 '''sender.attr('id')''' as an object. IE7 alerts that this is a problem
 because the ID has disappeared so the return value of
 '''sender.attr('id')''' is correctly not an object. This is a byproduct of
 the actual problem which is the ID disappearing in the first place.

 I cannot pinpoint where the ID is being stripped in the JavaScript, but it
 appears to be jquery-ui related?

--
Ticket URL: <http://core.trac.wordpress.org/ticket/24667>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list