mediawiki.hlist: Use mw.hook( 'wikipage.content' ) in JS fallback
authorBartosz Dziewoński <matma.rex@gmail.com>
Tue, 19 Nov 2013 11:15:06 +0000 (12:15 +0100)
committerOri.livneh <ori@wikimedia.org>
Sun, 22 Dec 2013 23:03:52 +0000 (23:03 +0000)
…to make sure that any dynamically-inserted content will be processed
as well.

Change-Id: Ibc34668fea309c319118b29f51300da3ed06311a

resources/mediawiki/mediawiki.hlist.js

index ef98136..77d8fdc 100644 (file)
@@ -1,24 +1,31 @@
 /**
-       IE 8: Add pseudo-selector class to last-child list items
+       .hlist fallbacks for IE 6, 7 and 8.
        @author [[User:Edokter]]
 */
-jQuery( function( $ ) {
-       if ( $.client.profile().name === 'msie' ) {
-               if ( $.client.profile().versionNumber === 8 ) {
-                       $( '.hlist' ).find( 'dd:last-child, dt:last-child, li:last-child' )
-                               .addClass( 'hlist-last-child' );
+( function ( mw, $ ) {
+       var profile = $.client.profile();
+
+       if ( profile.name === 'msie' ) {
+               if ( profile.versionNumber === 8 ) {
+                       /* IE 8: Add pseudo-selector class to last-child list items */
+                       mw.hook( 'wikipage.content' ).add( function ( $content ) {
+                               $content.find( '.hlist' ).find( 'dd:last-child, dt:last-child, li:last-child' )
+                                       .addClass( 'hlist-last-child' );
+                       } );
                }
+               else if ( profile.versionNumber <= 7 ) {
                        /* IE 7 and below: Generate interpuncts and parentheses */
-               if ( $.client.profile().versionNumber <= 7 ) {
-                       var $hlists = $( '.hlist' );
-                       $hlists.find( 'dt:not(:last-child)' )
-                               .append( ': ' );
-                       $hlists.find( 'dd:not(:last-child)' )
-                               .append( '<b>·</b> ' );
-                       $hlists.find( 'li:not(:last-child)' )
-                               .append( '<b>·</b> ' );
-                       $hlists.find( 'dl dl, dl ol, dl ul, ol dl, ol ol, ol ul, ul dl, ul ol, ul ul' )
-                               .prepend( '( ' ).append( ') ' );
+                       mw.hook( 'wikipage.content' ).add( function ( $content ) {
+                               var $hlists = $content.find( '.hlist' );
+                               $hlists.find( 'dt:not(:last-child)' )
+                                       .append( ': ' );
+                               $hlists.find( 'dd:not(:last-child)' )
+                                       .append( '<b>·</b> ' );
+                               $hlists.find( 'li:not(:last-child)' )
+                                       .append( '<b>·</b> ' );
+                               $hlists.find( 'dl dl, dl ol, dl ul, ol dl, ol ol, ol ul, ul dl, ul ol, ul ul' )
+                                       .prepend( '( ' ).append( ') ' );
+                       } );
                }
        }
-} );
+}( mediaWiki, jQuery ) );