From ec8edeb8ec29511ae5efe207bda062cb84e8ad46 Mon Sep 17 00:00:00 2001 From: jdlrobson Date: Wed, 21 Apr 2021 11:40:00 -0700 Subject: [PATCH] Use ev.currentTarget not ev.target In modern Vector, the ULS trigger button has a child node which is a span. When clicks are received on the span, they will result in positioning relating to the span rather than the button. The ev.currentTarget should be read outside the asynchronous function to avoid bubbling. Bug: T276248 Change-Id: I6e138c88e29b335b8e0bc22cf0aa07c289a5eb74 --- resources/js/ext.uls.interface.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/js/ext.uls.interface.js b/resources/js/ext.uls.interface.js index 298b1376..1518afee 100644 --- a/resources/js/ext.uls.interface.js +++ b/resources/js/ext.uls.interface.js @@ -454,12 +454,12 @@ * @param {jQuery.Event} ev */ function loadContentLanguageSelector( ev ) { + var $target = $( ev.currentTarget ); ev.preventDefault(); mw.loader.using( 'ext.uls.mediawiki' ).then( function () { - var $target, parent, languageNodes, standalone, uls; + var parent, languageNodes, standalone, uls; - $target = $( ev.target ); parent = document.querySelectorAll( '.mw-portlet-lang, #p-lang' )[ 0 ]; languageNodes = parent ? parent.querySelectorAll( '.interlanguage-link-target' ) : []; standalone = isUsingStandaloneLanguageButton();