From 1de8877cad94e1f9252b1f6ccdea57ff3339c367 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Fri, 23 Apr 2010 12:13:46 -0400 Subject: Shorten text after paste operation Abort ajax shorten request if the user pastes/pushes another key --- plugins/ClientSideShorten/shorten.js | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/plugins/ClientSideShorten/shorten.js b/plugins/ClientSideShorten/shorten.js index b3a614633..0db78ecea 100644 --- a/plugins/ClientSideShorten/shorten.js +++ b/plugins/ClientSideShorten/shorten.js @@ -31,21 +31,11 @@ })(jQuery,'smartkeypress'); - $(document).ready(function(){ - $noticeDataText = $('#'+SN.C.S.NoticeDataText); - $noticeDataText.smartkeypress(function(e){ - if(e.charCode == '32') { - shorten(); - } - }); - $noticeDataText.bind('paste', shorten); - }); - function shorten() { $noticeDataText = $('#'+SN.C.S.NoticeDataText); var original = $noticeDataText.val(); - $.ajax({ + shortenAjax = $.ajax({ url: $('address .url')[0].href+'/plugins/ClientSideShorten/shorten', data: { text: $noticeDataText.val() }, dataType: 'text', @@ -56,4 +46,19 @@ } }); } + + $(document).ready(function(){ + $noticeDataText = $('#'+SN.C.S.NoticeDataText); + $noticeDataText.smartkeypress(function(e){ + if(typeof(shortenAjax) !== 'undefined') shortenAjax.abort(); + if(e.charCode == '32') { + shorten(); + } + }); + $noticeDataText.bind('paste', function() { + if(typeof(shortenAjax) !== 'undefined') shortenAjax.abort(); + setTimeout(shorten,1); + }); + }); + })(); -- cgit v1.2.3-54-g00ecf