2012-02-05 7 views
2

jquery in smarty tpl - Попытка использовать jquery для вставки атрибута класса, чтобы я мог стилизовать CSS каждую строку списка элементов с затенением. Следующий код выглядит так, как будто он должен работать, но класс «alt» не вставлен в тег li. Страница загружается отлично - никаких проблем нет. Кто-нибудь видит что-то явно неправильное?jQuery в smarty tpl

{literal} 
<script src="{$content_dir}themes/pres2c/js/stripe/jquery-1.7.1.js"></script> 
    <script type="text/javascript"> 
     jQuery(document).ready(function(){ 
     jQuery(".block_content li:even").addClass("alt"); 
     }); 
    </script> 
{/literal} 

этот последний источник веб-страницы появляется, так же, как это, в голове, но все-таки Ли теги не получают прикоснулся ..

<script src="{$content_dir}themes/pres2c/js/stripe/jquery-1.7.1.js"></script> 
    <script type="text/javascript"> 
     jQuery(document).ready(function(){ 
     jQuery(".block_content li:even").addClass("alt"); 
     }); 
    </script> 
+0

вы уверены, что JQuery загружается – Rafay

+0

Привет, спасибо за сообщение, нет, я не проверял для этого, но я также пробовал абсолютный путь к нему, поэтому я бы предположил, что он загружается. Можете ли вы предложить тест для этого? –

+0

разместите предупреждение внутри обработчика 'ready', например' jQuery (document) .ready (function() {alert ("ready to roll");}); 'и посмотрим, получится ли это – Rafay

ответ

0

должно быть

<script src="{$content_dir}themes/pres2c/js/stripe/jquery-1.7.1.js"></script> 
<script type="text/javascript"> 
{literal} 
    jQuery(document).ready(function(){ 
    jQuery(".block_content li:even").addClass("alt"); 
    }); 
{/literal} 
</script> 

Таким образом, {$ content_dir} по-прежнему является переменной smarty. В вашем случае, {$ content_dir} берется буквально, вместо переменной

1

Try:

{literal} 
<script src="{/literal}{$content_dir}{literal}themes/pres2c/js/stripe/jquery-1.7.1.js"></script> 
    <script type="text/javascript"> 
     jQuery(document).ready(function(){ 
     jQuery(".block_content li:even").addClass("alt"); 
     }); 
    </script> 
{/literal} 
+1

не просто вставляйте код, добавьте объяснение, почему это может сработать, и выделите конкретные детали, которые имеют отношение к аферу. Затем поставьте свой код в качестве примера в конце. –