跳转到内容

User:SunAfterRain/js/TalkendFrameToggle.js

维基百科,自由的百科全书

注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google ChromeFirefoxMicrosoft EdgeSafari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。

/**
 * 讓 Template:TalkendH 可以如同以前使用 NavFrame 時一樣可以點擊藍條來展開
 * @author SunAfterRain
 */
$( () => {
	const DATA_KEY = 'TalkendFrameToggle.data';

	function initTalkendFrameToggle( element ) {
		const $element = $( element );
		if ( !$element.hasClass( 'talkend' ) || !!$element.data( DATA_KEY ) || ( $element.attr( 'id' ) || '' ).startsWith( 'mw-customcollapsible-' ) ) {
			return;
		}

		const $head = $element.children( '.talkend-title' );
		const $toggle = $element.children( '.mw-collapsible-toggle' );
		$head
			.css( 'cursor', 'pointer' )
			.on( 'click', () => {
				$toggle.click();
			} );

		$element.data( DATA_KEY, {
			$head,
			$toggle
		} );
	}
	
	function initTalkendFrameToggleWrapper( $frame ) {
		for ( const frame of $frame.get() ) {
			initTalkendFrameToggle( frame );
		}
	}

	if ( typeof $.fn.makeCollapsible === 'function' ) {
		initTalkendFrameToggleWrapper( $( '.talkend.mw-made-collapsible' ) );
	}

	mw.hook( 'wikipage.collapsibleContent' ).add( initTalkendFrameToggleWrapper );
} );