4

我正在尝试在 Joomla 3 下制作一个简单的 jQuery 脚本。这是我的模块现在的样子:

<?php 
// no direct access
defined('_JEXEC') or die;

$doc = JFactory::getDocument();
JHtml::_('jquery.framework');
$doc->addScriptDeclaration('
    $(document).ready(function () {
       $(".text").text("By this");
    });
');
?>

<div class="text">Text should be changed...</div>

我在一个普通页面上尝试了这个片段并且完美地工作,只是我不知道为什么它不想在 Joomla 中工作。我也安装了 jQuery Easy 插件,但没有成功。

4

1 回答 1

18

好的,经过大量研究,我终于有了答案。因为 Joomla 默认通过命名空间处理 jQuery ,所以你必须把它放在你的 jQuery 代码中。它在这里也提到: http ://docs.joomla.org/J3.1:Javascript_Frameworks#jQuery_JavaScript_Framework

因此,您必须使用jQuery而不是使用$。所以这里是工作代码:

<?php 
// no direct access
defined('_JEXEC') or die;

$doc = JFactory::getDocument();
JHtml::_('jquery.framework');

$doc->addScriptDeclaration('
    jQuery(document).ready(function () {
        jQuery(".text").text("By this :)");
    });     
');
?>

<div class="text">Text should be changed...</div> 

我希望它有帮助:)

PS:您可以通过像这样更改 jQuery 声明来关闭命名空间

JHtml::_('jquery.framework', false);

请注意,这对我不起作用...

于 2013-09-02T07:19:11.127 回答