<script type="text/javascript">
$('#TextBoxConfirmNewEmail').bind('cut copy paste', function (e) {
e.preventDefault();
$('#cut_copy_paste').html("Please re-type email address for verification.").fadeIn(1);
$('#cut_copy_paste').html("Please re-type email address for verification.").delay(3000).fadeOut(1000);
});
</script>
我确信有一种方法可以简化此代码,但我的问题是这个。它被调用一次它可以工作,但如果我按Ctrl + V,Ctrl + V,Ctrl + V多次。它被执行多次。我试图只抓住一个事件并转储其余事件。
基本上我试图在人物剪切,复制或粘贴时显示消息,然后慢慢让该消息消失。如果此人再次快速按下Ctrl + V,请忽略它,直到消息完全消失。
答案 0 :(得分:1)
我想像这样做:
$('#TextBoxConfirmNewEmail').bind('cut copy paste', function (e) {
e.preventDefault();
var $ccp = $('#cut_copy_paste');
if($ccp.data('abort')==true)
return 0;
$ccp.data('abort',true).html("Please re-type email address for verification.").fadeIn(1).delay(3000).fadeOut(1000, function() { $(this).data('abort',false); });
});
JSFiddle:http://jsfiddle.net/n2UuZ/
答案 1 :(得分:0)
类似的东西:
<script type="text/javascript">
var runVer = true;
$('#TextBoxConfirmNewEmail').bind('cut copy paste', function (e) {
e.preventDefault();
if (runVer)
{
runVer = false;
$('#cut_copy_paste').html("Please re-type email address for verification.").fadeIn(1);
$('#cut_copy_paste').html("Please re-type email address for verification.").delay(3000).fadeOut(1000);
setTimeout(function() {
runVer = true;
}, 3000);
}
});
</script>