我的.tpl文件中有以下代码(我正在使用Smarty template engine作为我的项目)。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('.check:button').toggle(function(){
$('input:checkbox').attr('checked','checked');
$(this).val('uncheck all');
},function(){
$('input:checkbox').removeAttr('checked');
$(this).val('check all');
})
})
</script>
<input type="button" class="check" value="check all" />
<input type="checkbox" class="cb-element" /> Checkbox 1
<input type="checkbox" class="cb-element" /> Checkbox 2
<input type="checkbox" class="cb-element" /> Checkbox 3
然而,在最终编译的PHP代码中,JS函数没有出现,因此我要创建的切换(“全部检查”)按钮不起作用。最终编译的php代码,如浏览器中所示:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script>
$(document).ready(function(),function())
})
</script>
<input type="button" class="check" value="check all" />
<input type="checkbox" class="cb-element" /> Checkbox 1
<input type="checkbox" class="cb-element" /> Checkbox 2
<input type="checkbox" class="cb-element" /> Checkbox 3
我是使用jQuery和Smarty的新手。任何帮助将不胜感激。 jQuery函数已在this SO post中讨论过。
编辑 :我已将JS放在{literal}和{/ literal}中,现在我可以在最终编译的php代码中看到JS函数。但是,JS功能仍然没有响应!为什么会这样?
答案 0 :(得分:2)
smarty,你添加的JS需要包含{literal}
和{/literal}
,以便smarty知道不会正常解释javascript中的“{}”标记,而不是通常解释为聪明的那些标签
答案 1 :(得分:1)
考虑将您的JS放在单独的文件中并链接到它。 Smarty使用{
和}
作为特殊字符。