0

我的 .tpl 文件中有以下代码(我的项目使用Smarty 模板引擎)。

<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 函数已在此 SO 帖子中讨论。

编辑 :我已将 JS 放入 {literal} 和 {/literal} 中,现在我可以在最终编译的 php 代码中看到 JS 函数。但是,JS函数仍然没有响应!为什么会这样?

4

2 回答 2

2

使用 smarty,并且您添加的 JS 需要被包装,{literal}因此{/literal}smarty 知道不正常解释 javascript 中的“{}”标签,而不是 smarty 通常解释这些标签

于 2013-06-08T18:25:35.717 回答
1

考虑将您的 JS 放在单独的文件中并链接到它。Smarty 使用{}作为特殊字符。

于 2013-06-08T18:15:02.203 回答