Закрытие, завершение функции по клику

Есть функция, которая подсвечивает код в textarea, я по клику в двух местах ее вызываю, при этом во втором месте, редактируются два разных файла! Сама функция:.

// Hook up ACE editor to all textareas with data-editor attribute
var isRunEditor = false; // Объявляю переменную в false для того, что бы собственно в нужном месте убить ф-цию поставив ее в true
function editCodeTextArea() {
    if (isRunEditor === false) {
        $('textarea[data-editor]').each(function () {
            var textarea = $(this);
            var mode = textarea.data('editor');
            var editDiv = $('<div>', {
                position: 'absolute',
                height: textarea.height(),
                'class': textarea.attr('class')
            }).insertBefore(textarea);
            textarea.css('display', 'none');
            var editor = ace.edit(editDiv[0]);
            editor.renderer.setShowGutter(textarea.data('gutter'));
            editor.getSession().setValue(textarea.val());
            editor.getSession().setMode("ace/mode/" + mode);
            editor.setTheme("ace/theme/idle_fingers");

            // copy back to textarea on form submit...
            textarea.closest('form').submit(function () {
                textarea.val(editor.getSession().getValue());
            })
        });
    }
    isRunEditor = true;
}

В одном месте вызываю так по клику на кнопку открывается в попапе textarea с кодом:

$('body').on('click', '.edit-file', function() {
                    $.ajax({
                        url: adminpath + '/landing/edit-file',
                        type: 'POST',
                        dataType: 'html',
                        data: {file: fileName},
                        success: function(data) {
                            $('.folder-window').fadeIn(500);
                            $('.editor-file').fadeIn(500);
                            $('.folder-window-child').fadeOut(500);
                            $('#editor-file').html(data);
                            $('#editor-file-name').val(fileName);
                            editCodeTextArea(); // Вызываю ф-цию
                        },
                        error:  function(xhr, str){
                            alert('Возникла ошибка: ' + xhr.responseCode);
                        }
                    });
                });

И надо завершить вызванную ф-цию по клику когда закрываю это попап окно:

$('.close-folder').on('click', function() {
    $('.folder-window-child').hide(1000);
    $('.folder-window').hide(1000);
    $('.close-folder').hide(1000);
    isRunEditor = true; // Таким образом пытаюсь закрыть
});

Но в данном месте к примеру проблема в том, что в одном и том же textarea могут открываться как js файл, так и css, а если первым открыл css например, то открывая js в textarea по прежнему в памяти предыдущий открытый файл - css. Вот и вопрос собственно, а как завершить работу ф-ции по клику и снова запустить по другому клику?


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