聪明的javascript里面

时间:2012-08-12 14:35:33

标签: php jquery smarty

我把智能代码放在js / jquery函数中,但不起作用,我看到空白页!如何解决这个问题?

{literal}
<script type="text/javascript">
  jQuery(document).ready(function($){
      $("#IsGroupGallery").click(function() {
      {literal} {if $photos} $.lightbox(["{"\", \""|implode:$photos}"]); {/if}{/literal}
      return false;
    });

  });
</script>
{/literal}

2 个答案:

答案 0 :(得分:2)

你的内部文字标签是向后的,你试图在 内的其他文字(显然不起作用,因为{literal}告诉Smarty保持内容不变。)它应该看起来像这样:

{literal}
<script type="text/javascript">
  jQuery(document).ready(function($){
      $("#lbgallery").click(function() {
      {/literal} {if $photos} $.lightbox(["{"\", \""|implode:$photos}"]); {/if}{literal}
      return false;
    });
  });
</script>
{/literal}

请注意,外部文字标记内的两个文字标记已被反转。你需要首先结束文字,然后再重新启动它,否则内部{literal}标签的内容也将被视为文字,而不是评估 - 这对你想要的东西没有意义做:)

答案 1 :(得分:1)

提示:Smarty3将{ if解析为文字字符串(&#34; auto literals&#34;)。因此,只要{被空格包围,Smarty3就会忽略它。

如果 - 无论出于何种原因 - 没有帮助,或者您仍然坚持使用Smarty 2,请注意{literal}标签不会嵌套。

{literal}
<script type="text/javascript">
  jQuery(document).ready(function($){
      $("#lbgallery").click(function() {
{/literal}
      {if $photos} $.lightbox(["{"\", \""|implode:$photos}"]); {/if}
{literal}
      return false;
    });
  });
</script>
{/literal}