n381 Ответов: 0

Функция обратного вызова Jquery на кнопке, измените onblur на onclick


Здравствуйте, я работаю над принятием редактора wysiwyg в "textarea", который работает, но у меня возникли проблемы с сохранением, поскольку скрипт использует функцию обратного вызова "onblur", которую я хочу превратить в событие on click.

callbacks: {
            onChange: function(contents, $editable) {
                editElements[$(this).attr('id')] = contents;
            },
            onBlur: function() {
                if (editElements[$(this).attr('id')]!=undefined) {
                    var id = $(this).attr('id');
                    var content = editElements[$(this).attr('id')];
                    var target = ($(this).attr('data-target')!=undefined) ? $(this).attr('data-target'):'pages';
                    editElements[$(this).attr('id')] = undefined;
                    $.post("",{
                        fieldname: id,
                        content: content,
                        target: target,
                        token: token,
                    })
                }
            }


Что я уже пробовал:

Поэтому я попробовал использовать событие обратного вызова следующим образом -

$(document).on('click','#addsave', function(e){
			editElements[$(this).attr('id')] = contents;
                      if (editElements[$(this).attr('id')]!=undefined) {
                    var id = $(this).attr('id');
                    var content = editElements[$(this).attr('id')];
                    var target = ($(this).attr('data-target')!=undefined) ? $(this).attr('data-target'):'pages';
                    editElements[$(this).attr('id')] = undefined;
                    $.post("",{
                        fieldname: id,
                        content: content,
                        target: target,
                        token: token,
                    });  
                  }
              });

-Это не работает, любая помощь оценена. Может быть, привязать событие click к onblur, как этого добиться с зависимостью от времени процесса браузера?

Richard Deeming

Почти наверняка потому что this в onBlur событие относится к <textarea>, поскольку this в click событие относится к вашей пользовательской кнопке.

Вам нужно будет найти способ идентифицировать цель <textarea> от кнопки.

В зависимости от того, как реализован сценарий, вы также можете обнаружить, что пытаетесь получить доступ к внутренним переменным, которые не являются общедоступными. В этом случае вам нужно будет посмотреть, предлагает ли скрипт публичный API для того, что вы пытаетесь сделать.

n381

Спасибо вам за это точное объяснение, это часть сценария редактора SummerNote wysiwyg, с наилучшими пожеланиями

0 Ответов