【发布时间】:2010-05-26 10:05:34
【问题描述】:
我正在尝试在模板中包含一些 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 应答器内给我一个错误
error : SyntaxError: missing } after 函数体
如果我只是将alert('it works inside'); 放在script 应答器中(删除所有与jquery 相关的代码),则页面加载、“直接”和“它在外部工作”这两条消息会显示,但不会显示“它在内部工作”消息。
它应该像doc page上所说的那样工作
允许在模板中使用 JavaScript 代码
谢谢
【问题讨论】:
-
从验证您的文档开始,79 个错误! validator.w3.org/check。并切换到更有用的文档类型,除非您嵌入 MathML 等,否则 XHTML1 strict 是无用的。
-
79 个错误,但如果我只更改文档类型,我会降到 1。验证器不太好 :) 我仍然有一个错误,但我不明白为什么
-
doctype 告诉浏览器如何处理你的文档,就像说“你好,这是一个 excel 文件”然后感觉它是一个 .zip,你会得到不可预知的行为。您需要输入 正确的 doctype。
-
好的,那么正确的文档类型是什么?我在哪里可以找到有关它的信息?谢谢
标签: javascript jquery jquery-plugins jtemplate