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
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 );
}
$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 {