Как сменить label на checkbox по клику

Подскажите, добрые люди, я хочу сделать кнопку Подписаться (на коментарии). Добился, что по клику label меняется на Отписаться и обратно, если еще раз кликнуть. Но при перезагрузке страницы, все очевидно слетает. Как правильно сделать проверку и подставить нужное значение в label?

<script>
            $(function(){
                $('#comment_track').on('ifChanged', function(e) {
                    $('#comment_track').trigger('change');
                    $("#subscription").text(this.checked ? "Отписаться" : "Подписаться");
                });
            });
        </script>

        <span class="comment-subscribe">
            <input type="checkbox" id="comment_track" class="input-checkbox"
                {if $oTrackComment AND $oTrackComment->getStatus()}checked="checked"{/if} 
                onchange="ls.subscribe.toggle('{$sTargetType}_new_comment','{$iTargetId}','',this.checked);">
            <label id="subscription" for="comment_track">
                Подписаться
            </label>
        </span>

Похожие статьи

  • Описки в коде
    Не для того, чтобы лишний раз загружать Вадима, а скорее наоборот, чтобы помочь. В первую очередь, конечно, самим себе. Тем более, что в качестве актуальной версии для скачивания по сей день лежит именно эта версия...
  • Нужна помощь с кодом
    Добрый день, подскажите как проверить, если хотя бы одно поле, которое проверяется нижеприведенным выражением, имеет значение (т.е. не пустое): {foreach from=$oContentType->getFields() item=oField} Нужно, чтобы...

7 комментариев

0
Что бы при перезагрузке «не слетало», вам еще нужно внести правки (как я понял по описанию проблемы) в сам шаблон, который отображает данные при загрузке страницы.
0
В примере кода — и есть шаблон, который оборажает. Так какие правки туда вносить?
0
Вопрос решен, кому интересно — обращайтесь
0
интересно. расскажите, плз
0
Меняем файл common/templates/skin/experience/tpls/comments/comment.tree.tpl и стили к нему.
{if $bAllowSubscribe AND E::IsUser()}
             <script>
                 $(function(){
-                    $('#comment_track').on('ifChanged', function(e) { $('#comment_track').trigger('change'); });
-                    $('#comment_subscribe').on('ifChanged', function(e) { $('#comment_subscribe').trigger('change'); });
+                    ls.hook.add('ls_track_toggle_after', function (type, id, value) {
+                        if (value) {
+                            $('#comment_track').addClass('active').val('Отписаться');
+                        } else {
+                            $('#comment_track').removeClass('active').val('Подписаться');
+                        }
+                    });
                 })
             </script>
-            <ul class="comment-subscribe">
-                <li class="long-text">{$aLang.comment_whatch}:</li>
-                <li class="short-text">{$aLang.comment_whatch_short}:</li>
-                <li>
-                    <label>
-                        <input {if $oTrackComment AND $oTrackComment->getStatus()}checked="checked"{/if}
-                               type="checkbox" id="comment_track" class="input-checkbox"
-                               onchange="ls.subscribe.tracktoggle('{$sTargetType}_new_comment','{$iTargetId}',this.checked);">
-                        {$aLang.comment_track}
-                    </label>
-                </li>
-                <li>
-                    <label>
-                        <input {if $oSubscribeComment AND $oSubscribeComment->getStatus()}checked="checked"{/if}
-                               type="checkbox" id="comment_subscribe" class="input-checkbox"
-                               onchange="ls.subscribe.toggle('{$sTargetType}_new_comment','{$iTargetId}','',this.checked);">
-                        {$aLang.comment_subscribe}
-                    </label>
-                </li>
-            </ul>
+            {$buttonClass=''}
+            {$buttonText='Подписаться'}
+            {if $oTrackComment AND $oTrackComment->getStatus()}
+                {$buttonText='Отписаться'}
+                {$buttonClass='active'}
+            {/if}
+            <input type="button" value="{$buttonText}" class="{$buttonClass}" id="comment_track"
+            onclick="ls.subscribe.tracktoggle('{$sTargetType}_new_comment','{$iTargetId}',!$(this).hasClass('active'));"/>
         {/if}
     </div>
 </div>
0
спасибо
0
Только что заметил, что можно сделать так, как сделано на кнопе «Свернуть все ветки» в комментариях.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.