JS里面的模板

时间:2010-05-26 10:05:35

标签: javascript jquery jquery-plugins jtemplate

我正在尝试在模板中包含一些javascript代码。

我的html页面的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
       "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <script type="text/javascript" src="jquery-1.4.2.min.js"></script>
    <script type="text/javascript" src="jquery-jtemplates.js"></script>
</head>

<body>
    <div id="infos"></div>
    <div id="my_template"></div>

    <script type="text/javascript">
        $(document).ready(function() {
            $('#my_template').setTemplateURL("my_template.html");
            try {
                $('#my_template').processTemplate({'var' : 1});
            }
            catch (e) {
                $('#infos').html('error : '+e);
            }
            $('#my_button').click(function(){
                alert('it works outside');
            });
        });
    </script>

</body>
</html>

和模板

content of the template<br/>
{#if $T.var == 1}

 <script type="text/javascript">
  $(document).ready(function() {

   $('#my_button').click(function(){
    alert('it works inside');
   });

  });
 </script>
 <input type='submit' id='my_button' value='click me' onclick='alert("direct");'/>

{#else}
 not working
{#/if}

infos应答器

中产生错误
  

错误:后面的SyntaxError:missing}   功能体

如果我只将alert('it works inside');放在script应答器中(删除所有与jquery相关的代码),页面加载,则显示两条消息“direct”和“it works outside”,但不是“它适用于“消息。

假设按照doc page

的说法运作
  

允许在模板中使用JavaScript代码

谢谢

2 个答案:

答案 0 :(得分:1)

模板预处理器看起来{}符号出现乱码。我不熟悉jtemplate,但这可能是您问题的解决方案:jTemplates escape {$

答案 1 :(得分:0)

我认为我找到了一个解决方案。

该模板允许我只在<script>标签内执行相当简单的JS,但我可以调用在我的主页面中定义的函数或使用外部JS文件

content of the template<br/>
{#if $T.var == 1}
    <script type="text/javascript" src="fct_template.js"></script>
    <input type='submit' id='my_button' value='click me'/>
{#else}
    not working
{#/if}

我可以把我想要的所有代码放在哪里