Обновление JS с использованием старого Jquery - PullRequest
0 голосов
/ 20 июня 2020

Пытаюсь преобразовать этот старый код для работы с новым jquery, но что-то упускаю.

Старый код - он использует Live (), который больше не поддерживается.

$(document).ready(function(){
    $("textarea").keydown(function(e) {
        if(e.keyCode === 9) {
            var start = this.selectionStart;
            var end = this.selectionEnd;
            var $this = $(this);
            var value = $this.val();
            $this.val(value.substring(0, start) + "\t" + value.substring(end));
            this.selectionStart = this.selectionEnd = start + 1;
            e.preventDefault();
        }
    });

    //getting input from all three textareas
    function getHTML() {
        var html = $('#html').val();
        return html;
    }
    function getCSS() {
        var css = $('#css').val();
        return css;
    }
    function getJS() {
        var js = $('#js').val();
        return js;
    }
    //put it in the preview area
    $('textarea').live("keyup,"function(){
        var targetIframe = $('preview')[0].contentWindow.document;
        targetIframe.open();
        targetIframe.close();
        var html=getHTML();
        var css ='<style>' + getCSS(); + '</style>';
        var js ='<script>' + getJS(); + '</script>';
        $('body',targetIframe).append(html);
        $('head',targetIframe).append(css);
        $('body',targetIframe).append(js);
    });

});

С помощью других я получил его здесь, но он все еще не работает.

$(document).ready(function(){
    $("textarea").keydown(function(e) {
        if(e.keyCode === 9) {
            var start = this.selectionStart;
            var end = this.selectionEnd;
            var $this = $(this);
            var value = $this.val();
            $this.val(value.substring(0, start) + "\t" + value.substring(end));
            this.selectionStart = this.selectionEnd = start + 1;
            e.preventDefault();
        }
    });

    //getting input from all three textareas
    function getHTML() {
        var html = $('#html').val();
        return html;
    }
    function getCSS() {
        var css = $('#css').val();
        return css;
    }
    function getJS() {
        var js = $('#js').val();
        return js;
    }

    $(document).on("keyup", "textarea", function(){
        var targetIframe = $('preview')[0].contentWindow.document;
        targetIframe.open();
        targetIframe.close();
        var html=getHTML();
        var css ='<style>' + getCSS(); + '</style>';
        var js ='<script>' + getJS(); + '</script>';
        $('body',targetIframe).append(html);
        $('head',targetIframe).append(css);
        $('body',targetIframe).append(js);

    });


});

Я знаю, где неправильный код, я получаю сообщение об ошибке в строке, начинающейся с 'var targetiFrame'. Я просто не знаю, как это исправить. Пожалуйста, помогите?

...