MediaWiki:Gadget-libJQuery.js
跳到导航
跳到搜索
注意:这类代码页面在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。
- 按住
CTRL+SHIFT+DEL 或 ⌘-Shift-R
来清除缓存! - 或尝试在地址栏的地址最后添加代码
?_=1
来访问最新页面。 - 你还可以在设置中勾选小工具在页面右上角添加清除缓存按钮!
/**
* https://commons.wikimedia.org/w/index.php?oldid=574492095
*/
"use strict";
(function ($, mw) {
$.extend({
createIcon: function (iconClass) {
return $("<span>", {
"class": "ui-icon " + iconClass + " jquery-inline-icon",
text: " ",
});
},
createNotifyArea: function (textNode, icon, state) {
return $("<div>", {
"class": "ui-widget",
}).append($("<div>", {
"class": state + " ui-corner-all",
style: "margin-top:20px; padding:0.7em;",
}).append($("<p>").append($.createIcon(icon).css("margin-right", ".3em"), textNode)));
},
/* @deprecated since 1.26 */
ucFirst: function (str) {
return str.charAt(0).toUpperCase() + str.slice(1);
},
});
mw.messages.set({
"libjq-cancel-title": "关闭该对话框 [Esc]",
"libjq-proceed-title": "Proceed [Enter] in single-line text fields",
"libjq-report-title": "报告错误以改进本工具",
});
var buttonConfig = {
proceed: {
icon: "ui-icon-circle-check",
"class": "ui-button-green",
title: "libjq-proceed-title",
},
cancel: {
icon: "ui-icon-circle-close",
"class": "ui-button-red",
title: "libjq-cancel-title",
},
report: {
icon: "ui-icon-circle-check",
"class": "",
title: "libjq-report-title",
},
};
$.extend($.fn, {
specialButton: function (which) {
return this.button({
icons: {
primary: buttonConfig[which].icon,
},
}).addClass(buttonConfig[which].class).attr("title", mw.msg(buttonConfig[which].title));
},
/**
* Add event/state classes to a node if they are in that state
*
* @example
* $('#MyButton')._jqInteraction().show();
*
* @context {Object} jQuery instance (jQuery DOM node list)
* @return {Object} jQuery instance (jQuery DOM node list)
*/
_jqInteraction: function () {
var _this = this;
return this.hover(function () {
_this.addClass("ui-state-hover");
}, function () {
_this.removeClass("ui-state-hover").removeClass("ui-state-active");
}).focusin(function () {
_this.addClass("ui-state-focus");
}).focusout(function () {
_this.removeClass("ui-state-focus");
}).mousedown(function (e) {
if (1 === e.which) {
_this.addClass("ui-state-active");
}
}).mouseup(function () {
_this.removeClass("ui-state-active");
});
},
});
}(jQuery, mediaWiki));