При вызове функции клонируются объекты
Есть скрипт:
<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> При переключении с таба на таб объект iwssid_editor дублируется каждый раз. Вот так это выглядит: ![]() Вынести создание объекта не хотелосьбы так тогда приется писать костыль для загрузки данных из textarea что не красиво. Как можно при вызове функции уничтожить существующий объект iwssid_editor Я пробовал делать iwssid_editor = null и delete iwssid_editor не получается :( Может есть другое решение можей задачи. Мне нужно чтобы при смене таба загружалось содержимое textarea из файла (для этого у меня есть методы get_data и set_data) и после этого создается экземпляр codemirror. Важно чтобы при изменении текста в codemirror он сохранялся в файл а при переключении табов тектс в codemirror обновлялся. Примерно это выглядит так: <!-- ==============================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======================================================--> И вот такой метод для данных: <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> |
Цитата:
при уходе со всех табов (ну или еще какие там условия) - объект делетить |
Часовой пояс GMT +3, время: 02:27. |