0

我将 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}
4

2 回答 2

2

你的内部文字标签是向后的,你试图在 {literal} 标签嵌套额外的文字(这显然不起作用,因为 {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} 标记的内容也将被视为文字,而不是评估 - 这对您尝试的内容没有意义做 :)

于 2012-08-12T14:42:31.027 回答
1

提示:Smarty3 解析{ if为文字字符串(“自动文字”)。因此,只要{被空格包围,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}
于 2012-08-12T14:42:27.100 回答