Summernote v0.7.0 при изменении проблемы обратного вызова

#javascript #jquery #summernote

#javascript #jquery #summernote

Вопрос:

Простая настройка summernote.

 <div id="summernote">data-here</div>


$('#summernote').summernote({
  height: 200,                 // set editor height
  focus: true,
  callbacks // any callbacks didn't worked, onChange, onBlur etc..(any tip on how to add proper callbacks here)
});
  

Я попытался создать код jquery для отслеживания события изменения моего summernote, например:

 $('#summernote').on("summernote.change", function (e) {
 # Problem here when deleting (keyboard backspace, calls twice)
 -some code here-
}
  

Моя проблема с summernote.change заключается в том, что при удалении текста / содержимого с использованием backspace клавиатуры обратный вызов (при изменении) запускается дважды вместо этого.
Таким образом, моя внутренняя функция также выполняется дважды.

Есть идеи по этому поводу, ребята, заранее спасибо.

Ответ №1:

Я попытался воссоздать проблему. Но у меня это работает нормально.

 $(document).ready(function() {
  $('#summernote').summernote({
    height: 200, // set editor height
    focus: true,
    callbacks: {
      onInit: function() {
        console.log('Summernote is launched');
      },
      onChange: function(contents, $editable) {
        console.log('onChange:', contents, $editable);
      }
    }
  });
  $('#summernote').on('summernote.change', function(we, contents, $editable) {
    console.log('summernote.change', contents, $editable);
  });
});  
 <!-- include libraries(jQuery, bootstrap) -->
<link href="http://netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css" rel="stylesheet">
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.js"></script>

<!-- include summernote css/js -->
<link href="http://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.11/summernote.css" rel="stylesheet">
<script src="http://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.11/summernote.js"></script>

<div id="summernote">data-here</div>  

Примечание: Вы должны использовать одно из событий onChange в обратных вызовах или summernote.change не оба.

Комментарии:

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

Ответ №2:

Насколько я знаю, это известная проблема (https://github.com/summernote/summernote/issues/2888 ), но никто не пытался это исправить.

Итак, я использую его следующим образом :

         var mySec = 100;
        var myEvent;

        $('#summernote').on("summernote.change", function (e) {
            clearTimeout(myEvent);

            myEvent = setTimeout(function(){
                console.log(e) // do something!
            }, mySec);
        });
  

Я надеюсь, что это поможет вам 🙂

Комментарии:

1. Summernote работает хорошо. сосредоточьтесь на мне