我正在尝试从 MediaWiki 内容页面“动态”地执行一些简单的 jQuery 操作。它实际上只是为了“美化”一些不同的功能。
我已完成以下操作: http://www.mediawiki.org/wiki/JQuery http://www.mediawiki.org/wiki/Manual:$wgRawHtml (最初主要用于 Paypal 按钮)
下面的代码不起作用。这被放置在空白内容页中。
<html>
<script>
$j(document).ready(function(){
$j('#test').hover(
function(){
$j('#test').attr('background-color','red');
},
function(){
$j('#test').removeAttr('background-color');
}
);
});
</script>
<div id="test">Howdy</div>
</html>
什么也没发生...
有什么想法吗?
更新:
我尝试了这个简单的解决方案,但没有结果。
example.com/wiki/index.php?title=MediaWiki:Common.js
$j('#jTest-Howdy').hover(
function(){
$j('#jTest-Howdy').addClass('jTest-red');
},
function(){
$j('#jTest-Howdy').removeClass('jTest-red');
}
);
example.com/wiki/index.php?title=MediaWiki:Common.css
.jTest-red { background-color: red; }
example.com/wiki/index.php?title=jQueryTest
<html>
<div id="jTest-Howdy">Howdy</div>
</html>
正如你在这里看到的,如果 jQuery 被正确加载,这段代码应该可以工作... http://jsfiddle.net/5qFhv/
但它对我不起作用......有什么帮助吗?
最佳答案
如果您使用的是由 MediaWiki 1.17 加载的 jQuery,请注意大多数 JavaScript 是在页面内容之后加载的。内联 <script> 元素在到达时立即执行,因此此时不会定义 $j ——您可能会在 JavaScript 错误控制台中看到一些与此相关的错误。
(顺便说一句,我不确定 1.16 中包含的 jQuery;据我所知,在此之前的 MediaWiki 版本不包含 jQuery。)
通常,您想要在这里做的是将 JavaScript 代码模块放入“MediaWiki:Common.js”页面并让它连接到您的 HTML 标记,或者创建一个 MediaWiki 扩展 - 然后您可以从中调用它您的页面,它可以让您创建您喜欢的任何有趣的 HTML 和 JavaScript 输出。
- http://www.mediawiki.org/wiki/Manual:Interface/JavaScript
- http://www.mediawiki.org/wiki/Manual:Developing_extensions
您放入“MediaWiki:Common.js”页面的代码将在其他 UI 初始化后加载,确保代码和变量存在,以便您可以调用 jQuery 等。
关于javascript - Media Wiki 页面中的 jQuery(不仅仅在 Monobook.js 或扩展中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5465622/