2013-07-24 3 views
0

Я хочу получить содержимое, которое вставлено (щелкнув правой кнопкой мыши, а затем не вставлять параметр клавиатуры ctrl + v), используя событие вставки в jquery. Пожалуйста, помогите мне решить это.Как получить содержимое, которое вставлено с помощью jquery

 <div class="note"></div> 
     <textarea id="textarea" rows="10" cols="40"></textarea> 

     <script> 

     $(function(){ 
      $("#textarea").on("keyup",function(){ 
       $(".note").html($(this).val()); 
      }); 
     }); 

     //keyup event works fine normally. But I want the paste event to do the same job. 

     $(function(){ 
      $("#textarea").on("paste",function(){ 
       $(".note").html($(this).val()); 
      }); 
     }); 

     </script> 
+0

Что не работает? – Sharlike

+0

Я не могу получить содержимое, которое я вставляю с помощью $ (this) .val() –

+0

Вы попробовали событие 'change' в текстовом поле? –

ответ

2

Попробуйте

$("#textarea").on('keyup paste', function(e) { 
    clearTimeout($(this).data('timeout')); 
    $(this).data('timeout', setTimeout(function(){ 
     alert(e.target.value); 
    }, 200)); 
}); 

EXAMPLE

примечание: изменен привязку к, по которым предпочтительнее.

+0

может у объяснить это, я не понимаю, с этим кодом –

+0

Мы добавляем задержку в событии, чтобы он срабатывал только один раз. Например, если вы хотите вставить что-то, нажмите 'ctrl' событие keyup. Вот почему вы впервые заметили пустой ответ. В этом случае добавляется небольшая задержка, поэтому он не будет запускать событие keyup, если вы выполняете 'ctrl', но упустите событие keyup в случае' ctrl + V'. очевидно, если вы не держите клавишу 'ctrl' в течение длительного времени, чем время задержки –

+0

Спасибо за объяснение :) –

Смежные вопросы