не могу решить проблему подскажите пожалуйста где ошибка?

<%
program_mega_test = ArrayOptFirstElem(XQuery("for $elem in test_learnings where $elem/assessment_id = 6872249034465500974 and $elem/person_id = " + adapt_top.person_id + 
" and $elem/max_score = $elem/score order by $elem/score descending return $elem"));
if(last_block.typical_development_program_id == 6877825654678515140 && program_mega_test != undefined ){
    %> // 2 часть
 
good">✔ Получение доступов
    <div class="progress-line v-middle" style="height: 0.3em; margin: 0 4em; text-align: right">
        <div class="current-progress" style="height: 0.3em; width: <%if(adapt_top.custom_elems.ObtainChildByKey('access_date').value != ""){%>100<%}else{%>0<%}%>%;"></div>
        <div class="current-progress-title font-size-2"><%if(adapt_top.custom_elems.ObtainChildByKey('access_date').value != ""){%>100<%}else{%>0<%}%>%</div>
        <div class="current-progress-desc font-size-2"><%if(adapt_top.custom_elems.ObtainChildByKey('access_date').value != ""){%>1<%}else{%>0<%}%>/1 выполнено</div>
    </div>
</div>
<div class="switch-panel-content" id="switch-panel-content-mail">
    <p>Поздравляем, ты успешно аттестован для продажи продуктов:</p>
    <p>✔ MoneyCare</p>
    <p>✔ Халва</p>
    <p>✔ Д2</p>
    <p>✔ РГС</p>
    <p>✔ СТОЛОТО</p>
    <br/>
    <p>Для получения письма с подтверждением аттестации нажми здесь:</p>
    <div class="button" onclick="SendMail()">Получить письмо</div>
    <br/>
    <br/>
    <p>Письмо придет автоматически на почту, его необходимо будет переслать с вложением на адрес эл.почты: <a href="mailto:[email protected]">[email protected]</a></p>
</div> //2 часть 
 <%                           
            due_date = OpenDoc(UrlFromDocID(OptInt(block.typical_development_program_id))).TopElem.tasks[0].due_date;
            if(last_block == "" || (last_block != "" && OpenDoc(UrlFromDocID(OptInt(last_block.typical_development_program_id))).TopElem.tasks[0].due_date != due_date)){       
        //if(last_block.typical_development_program_id == 6877825654678515140){
            program_mega_test = ArrayOptFirstElem(XQuery("for $elem in test_learnings where $elem/assessment_id = 6872249034465500974 and $elem/person_id = " + adapt_top.person_id + 
            " and $elem/max_score = $elem/score order by $elem/score descending return $elem"));
            if( 0 != undefined ){
%> //1 часть 
good">✔ Получение доступов
                            <div class="progress-line v-middle" style="height: 0.3em; margin: 0 4em; text-align: right">
                                <div class="current-progress" style="height: 0.3em; width: <%if(adapt_top.custom_elems.ObtainChildByKey('access_date').value != ""){%>100<%}else{%>0<%}%>%;"></div>
                                <div class="current-progress-title font-size-2"><%if(adapt_top.custom_elems.ObtainChildByKey('access_date').value != ""){%>100<%}else{%>0<%}%>%</div>
                                <div class="current-progress-desc font-size-2"><%if(adapt_top.custom_elems.ObtainChildByKey('access_date').value != ""){%>1<%}else{%>0<%}%>/1 выполнено</div>
                            </div>
                        </div>
                        <div class="switch-panel-content" id="switch-panel-content-mail">
                            <p>Поздравляем, ты успешно аттестован для продажи продуктов:</p>
                            <p>✔ MoneyCare</p>
                            <p>✔ Халва</p>
                            <p>✔ Д2</p>
                            <p>✔ РГС</p>
                            <p>✔ СТОЛОТО</p>
                            <br/>
                            <p>Для получения письма с подтверждением аттестации нажми здесь:</p>
                            <div class="button" onclick="SendMail()">Получить письмо</div>
                            <br/>
                            <br/>
                            <p>Письмо придет автоматически на почту, его необходимо будет переслать с вложением на адрес эл.почты: <a href="mailto:[email protected]">[email protected]</a></p>
                        </div>

//1 часть

    for(i = 0; i < 7; i++ ){
        let indx = i;
    if(document.getElementById('switch-panel-' + i) != null){
            document.getElementById('switch-panel-' + i).addEventListener("click",  () => { SwitchPanel(indx); }, false);
    }
    }

function SwitchPanel(num){
    panel = document.getElementById('switch-panel-content-' + num);
    if(panel.style.display == "block"){
        panel.style.display = "none";
        document.getElementById('switch-panel-' + num).classList.remove("switch-selected");
    }
    else{
        panel.style.display = "block";
        document.getElementById('switch-panel-' + num).classList.add("switch-selected");
    }
} //функция

//Ошибка выдает Uncaught ReferenceError: SwitchPanel is not defined at HTMLDivElement.onclick (view_doc.html?mode=adapt_card&doc_id=&adapt_id=7112696512017738677:370:143) показывает то что проблема в этом части

<div class="switch-panel justify-space-between" style="border-bottom: 1px solid #ddd;"  id="switch-panel-mail" onclick="SwitchPanel('mail')">

написано такое ошибка


Ответы (2 шт):

Автор решения: KaDRuSS Ro

Проблема показывает на этот часть кода

<div class="switch-panel justify-space-between" style="border-bottom: 1px solid #ddd;"  id="switch-panel-mail" onclick="SwitchPanel('mail')">

(Uncaught ReferenceError: SwitchPanel is not defined)
→ Ссылка
Автор решения: Sergey K.

Попробуй снчала функцию объявить, а потом её вызывать.


function SwitchPanel(num){
    panel = document.getElementById('switch-panel-content-' + num);
    if(panel.style.display == "block"){
        panel.style.display = "none";
        document.getElementById('switch-panel-' + num).classList.remove("switch-selected");
    }
    else{
        panel.style.display = "block";
        document.getElementById('switch-panel-' + num).classList.add("switch-selected");
    }
} //функция

for(i = 0; i < 7; i++ ){
        let indx = i;
    if(document.getElementById('switch-panel-' + i) != null){
            document.getElementById('switch-panel-' + i).addEventListener("click",  () => { SwitchPanel(indx); }, false);
    }
    }

→ Ссылка