Клоны CodeMirror на вкладках начальной загрузки показывают функцию

У меня проблема в моем проекте. Мое приложение выполняет следующие действия:

  1. Загрузить информацию из файлов скриптов.
  2. Редактировать с помощью CodeMirror
  3. Сохранить обратно на сервер

Я использовал вкладки Twitter BootStrap и зеркало кода для подсветки синтаксиса.

Я делаю следующее: при показе вкладок мне нужно загрузить содержимое из файла в текстовую область, а затем создать из него редактор CodeMirror. Но когда я пытаюсь, у меня клонируется объект CodeMiror каждый раз, когда срабатывает событие onShown.

<!-- ==============================IWSSID-LUA-TAB======================================================-->

    <div class="tab-pane fade" id="iwssid-lua-tab">

        <div>
            <button id="save-iwssid-code" class="btn btn-info" onclick="set_data('lua/iwssid.lua',$('#iwssid-lua-code').val())">Save</button>
            <a href="lua/iwssid.lua" target="_blank" class="btn btn-success pull-right">Dowload File</a>
        </div>

        <br>

        <form>
            <div>
                <textarea id="iwssid-lua-code" name="iwssid-lua-code"></textarea>
            </div>
        </form>

        <script>
            $(function () {

              $('a[href="#iwssid-lua-tab"]').on('shown', function (e) {
                                                post = get_data('lua/iwssid.lua'); 
                                                $('#iwssid-lua-code').val(post);
                                                var iwssid_editor = CodeMirror.fromTextArea(document.getElementById("iwssid-lua-code"), {
                                                                                            mode: "lua",
                                                                                            autofocus: true,
                                                                                            lineNumbers: true,
                                                                                            lineWrapping: true,
                                                                                            onCursorActivity: function() {

                                                                                            iwssid_editor.setLineClass(hlLine, null, null);
                                                                                            hlLine = iwssid_editor.setLineClass(iwssid_editor.getCursor().line, null, "activeline");
                                                                                            },                                                                                        
                                                                                            onBlur: function () { 
                                                                                                iwssid_editor.save();
                                                                                            }
                                                                                            });
                                                var hlLine = iwssid_editor.setLineClass(0, "activeline");
                                                })
              })
            </script>
    </div>
    <!-- ==============================END OF IWSSID-LUA-TAB======================================================-->

методы set_data и get_data:

<script>
    function get_data(file) {
        var post;
        $.ajax({
               type: "POST",
               async: false,
               url: "filemanager.php",
               data: { command: "get", filename: file }
               }).done(function(msg ) {
                       post = msg;


                       });
        return post;
    }

    function set_data(file, content) {
        $.ajax({
               type: "POST",
               url: "filemanager.php",
               data: { command: "set", filename: file, data: content }
               }).done(function(msg ) {
                       alert("Done");
                       });
    }

    </script>

Я пытался установить iwssid_editor = null и delete iwssid_editor перед созданием нового, но безуспешно. Пожалуйста, объясните мне мои ошибки. Вот скриншот моей проблемы


person BoSkiv    schedule 09.07.2012    source источник


Ответы (1)


Почему бы вам не создать редактор Codemirror при загрузке страницы?

person Josh Wulf    schedule 07.11.2012