貼り付けイベントの標準的な動作を変更する必要があります。Paste イベントの実行を数ミリ秒遅らせたい。純粋なjavascriptまたはjQueryでそれを行う方法はありますか?
編集:より正確には、貼り付けイベントが発生したときにアクションを実行する必要があり、数ミリ待ってから貼り付けます。
貼り付けイベントの標準的な動作を変更する必要があります。Paste イベントの実行を数ミリ秒遅らせたい。純粋なjavascriptまたはjQueryでそれを行う方法はありますか?
編集:より正確には、貼り付けイベントが発生したときにアクションを実行する必要があり、数ミリ待ってから貼り付けます。
色だけ変えてみてはどうでしょう。テキストは 500 ミリ秒間白いままです。
$('input').each(function(){
$(this).bind('paste', function(e){
$(this).css('color', '#fff');
setTimeout(function(){
e.target.style.color="#000";
},500)});
});
の答えに基づいてSctt
(ただし、恐ろしいsleep()
機能はありません)、次のことを試してください。
var delayTime = 5000; // 5 seconds
$('#myObject').bind('paste', function() {
// Code here is executed before the delay
setTimeout(function() {
// Code here is executed during the delay
}, delayTime);
return true;
});
貼り付けイベントを受け取る要素にonpasteイベント ハンドラーを 追加できます。
ハンドラーでは、次のことを行う必要があります。
例えば:
var myElement = document.getElementById('pasteElement');
myElement.onpaste = function(e) { //Add handler to onpaste event
doSomethingHere(); //Do something before the delay
sleep(200); //Add the delay
return true; //return true continue with default paste event
}
//One way to introduce a delay
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
編集: 待機前にアクションを実行する場所を示す行を追加しました。