Вставьте eventListener, не работающий в конденсат, используя jquery - PullRequest
1 голос
/ 30 марта 2020

Я пытаюсь обработать событие EventListener для вставки, используя jquery, но кажется, что я не могу заставить его работать.

Ниже мой код:

function handlePaste (e) {
        var clipboardData, pastedData;

        // Stop data actually being pasted into div
        e.stopPropagation();
    e.preventDefault();

        // Get pasted data via clipboard API
    clipboardData = e.clipboardData || window.clipboardData;
    pastedData = clipboardData.getData('Text');

    // Do whatever with pasteddata
    alert(pastedData);
}

Если я это сделаю вместо этого он работает отлично.

document.getElementById('editableDiv').addEventListener('paste', handlePaste);

Но если я это сделаю, он перестанет работать.

$('#editableDiv').on('paste',function(event){
handlePaste(event);
});

Какую часть я делаю неправильно?

Ответы [ 2 ]

2 голосов
/ 30 марта 2020

В обработчике событий jquery вы должны передать originalEvent свойство объекта event:

$('#editableDiv').on('paste',function(event){
  handlePaste(event.originalEvent);
});
0 голосов
/ 30 марта 2020

function handlePaste(e) {
        var clipboardData, pastedData;

        // Stop data actually being pasted into div
        e.stopPropagation();
    e.preventDefault();

        // Get pasted data via clipboard API
    clipboardData = e.clipboardData || window.clipboardData;
    console.log(clipboardData)
    pastedData = clipboardData.getData('Text');

    // Do whatever with pasteddata
    alert(pastedData);
}

$(document).on('paste', '#editableDiv', function (e) {

handlePaste(e.originalEvent)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...