2012-08-12 65 views
0

我把聰明的代碼放在js/jquery函數中,但不起作用,我看到空白頁面!如何解決這個問題?smarty inside javascript

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

    }); 
</script> 
{/literal} 
+0

對您有幫助嗎? http://www.smarty.net/docsv2/en/language.function.literal – undefined 2012-08-12 14:37:37

+0

您正在使用哪種Smarty版本? – Bjoern 2012-08-12 14:40:40

+0

舊版本:2.6.20 – BBKing 2012-08-12 14:44:42

回答

2

你內心的文字標籤是倒退,而你正試圖巢附加文字一個{文字}標籤(這顯然是行不通的,因爲{文字}告訴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

提示:Smarty3將{ if解析爲文字字符串(「auto literals」)。所以每當{被空白包圍時,它被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}