LLWiki正在建设中,欢迎加入我们

“User:Bhsd/widget/songposition.js”的版本间差异

来自LLWiki
跳转到导航 跳转到搜索
第4行: 第4行:
/*global mw, $, OO*/
/*global mw, $, OO*/
(() => {
(() => {
function main($content) {
let popup, label;
const label = $('<span>');
function prepare() {
label = $('<span>');
mw.loader.using( 'oojs-ui-core' ).then(() => {
mw.loader.using( 'oojs-ui-core' ).then(() => {
popup = new OO.ui.PopupWidget({$content: label, classes: ['member-popup'], padded: true, width: null});
const popup = new OO.ui.PopupWidget({$content:label, classes:['member-popup'], padded:true, width:null});
popup.$element.appendTo( 'body' );
popup.$element.appendTo( 'body' );
$content.find( '.member-symbol' ).each(function() { this.dataset.title = this.title; })
.removeAttr( 'title' ).attr('tabIndex', -1).on('mouseenter focus', function() {
const self = $(this);
label.text( self.data('title') );
popup.setFloatableContainer( self ).toggle(true);
}).on('mouseleave blur', () => { popup.toggle(false); });
});
});
}
function main($content) {
$content.find( '.member-symbol' ).each(function() { this.dataset.title = this.title; }).removeAttr( 'title' )
.attr('tabIndex', -1).on('mouseenter focus', function() {
const self = $(this);
label.text( self.data('title') );
popup.setFloatableContainer( self ).toggle(true);
}).on('mouseleave blur', () => { popup.toggle(false); });
}
}
console.log( 'setInterval: 等待jQuery加载完毕' );
console.log( 'setInterval: 等待jQuery加载完毕' );
第26行: 第23行:
clearInterval(jqueryTimer);
clearInterval(jqueryTimer);
console.log(`End setInterval: jQuery加载完毕,用时 ${Date.now() - timerStart} ms`);
console.log(`End setInterval: jQuery加载完毕,用时 ${Date.now() - timerStart} ms`);
prepare();
mw.hook( 'wikipage.content' ).add($content => { main($content); });
mw.hook( 'wikipage.content' ).add($content => { main($content); });
}, 500);
}, 500);

2020年12月12日 (六) 05:24的版本

//<nowiki>
// 用于[[Widget:Songposition]],可以使用ES6语法
"use strict";
/*global mw, $, OO*/
(() => {
    function main($content) {
        const label = $('<span>');
        mw.loader.using( 'oojs-ui-core' ).then(() => {
            const popup = new OO.ui.PopupWidget({$content:label, classes:['member-popup'], padded:true, width:null});
            popup.$element.appendTo( 'body' );
            $content.find( '.member-symbol' ).each(function() { this.dataset.title = this.title; })
                .removeAttr( 'title' ).attr('tabIndex', -1).on('mouseenter focus', function() {
                const self = $(this);
                label.text( self.data('title') );
                popup.setFloatableContainer( self ).toggle(true);
            }).on('mouseleave blur', () => { popup.toggle(false); });
        });
    }
    console.log( 'setInterval: 等待jQuery加载完毕' );
    const timerStart = Date.now(),
        jqueryTimer = setInterval(() => {
        if (!window.jQuery) { return; }
        clearInterval(jqueryTimer);
        console.log(`End setInterval: jQuery加载完毕,用时 ${Date.now() - timerStart} ms`);
        mw.hook( 'wikipage.content' ).add($content => { main($content); });
    }, 500);
}) ();
//</nowiki>
// [[category:jQuery小部件]] {{DEFAULTSORT:Songposition}}