触发domready事件后的Javascript注入

时间:2011-08-29 15:29:56

标签: javascript ajax joomla

我在Joomla环境中工作,但我认为这不是问题的根源。

我有一个使用AJAX渲染子视图(包含<script type="text/javascript></script>等JavaScript代码)的视图。问题是:JavaScript代码被忽略。我想这是因为它在加载时不在文档中。

以下是其中一个子视图中包含的JavaScript代码:

<script type="text/javascript">
    window.addEvent('domready', function() {
        $('annuler').addEvent('click', function() {
            var a = new Ajax(
                    '{$url}', 
                    {
                        method: 'get',
                        update: $('update')
                    }
            ).request();
        });
    });
</script>

另一个基本示例,如果我在其中加载包含以下代码的子视图,它将无法正常工作:

<script type="text/javascript">
    function test()
    {
        alert('ok');
    }
</script>

<a id="annuler" onclick="test()">Annuler</a>

我收到以下错误消息:“test is not defined”

我找不到解决这个问题的方法,所以我开始认为这不是一个使用JavaScript的好方法...而且,是的,我对基于事件的JavaScript(带框架)有点新意等等。)

2 个答案:

答案 0 :(得分:0)

我终于设法将所有子视图和JavaScript代码放在同一页面中。我正在使用CSS display属性来隐藏/显示子视图(<div>)(而不是使用Ajax加载它)。

答案 1 :(得分:-1)

将要运行的代码放在函数中,并从就绪块

调用该函数

编辑: 示例:

    $(document).ready(function() {
    // put all your jQuery goodness in here.
    });

在此处找到:http://www.learningjquery.com/2006/09/introducing-document-ready