Use explicit methods instead of the jQuery constructor's second argument
authorRicordisamoa <ricordisamoa@openmailbox.org>
Tue, 13 Oct 2015 16:07:36 +0000 (18:07 +0200)
committerRicordisamoa <ricordisamoa@openmailbox.org>
Tue, 13 Oct 2015 16:17:59 +0000 (18:17 +0200)
As recommended by
https://www.mediawiki.org/wiki/Manual:Coding_conventions/JavaScript#Pitfalls:
"As of jQuery 1.4 the jQuery constructor has a new feature
 that allows passing an object as second argument, like
 jQuery( '<div>', { foo: 'bar', click: function () {}, css: { .. } } );.
 Don't use this. It makes code harder to follow, fails on attributes
 (such as 'size') that are also methods, and is unstable due to this
 mixing of jQuery methods with element attributes. A future jQuery
 method or plugin or called "title" might convert an element into a
 heading, which means the title attribute can also no longer be set
 through this method. Be explicit and call .attr(), .prop(), .on()
 etc. directly."

Change-Id: Iaf456b4b76dd4fc260dad0e4c0ec8f2976b59b83

resources/src/jquery/jquery.spinner.js
resources/src/mediawiki.action/mediawiki.action.view.metadata.js

index 41c555b..af5a97d 100644 (file)
@@ -67,7 +67,7 @@
 
                        opts = $.extend( {}, defaults, opts );
 
-                       var $spinner = $( '<div>', { 'class': 'mw-spinner', title: '...' } );
+                       var $spinner = $( '<div>' ).addClass( 'mw-spinner' ).attr( 'title', '...' );
                        if ( opts.id !== undefined ) {
                                $spinner.attr( 'id', 'mw-spinner-' + opts.id );
                        }
index 25b5acc..b1a63b0 100644 (file)
                $row = $( '<tr class="mw-metadata-show-hide-extended"></tr>' );
                $col = $( '<td colspan="2"></td>' );
 
-               $link = $( '<a>', {
-                       text: showText,
-                       href: '#'
-               } ).click( function () {
+               $link = $( '<a>' )
+               .text( showText )
+               .attr( 'href', '#' )
+               .click( function () {
                        if ( $table.hasClass( 'collapsed' ) ) {
                                $( this ).text( hideText );
                        } else {