Как отменить действие обработчика?
Добрый вечер. Возник такой вопрос, можно ли по клику на кнопку отменить предыдущую обработку текста? Не полностью отменить все действия, а только предыдущее. Спасибо
<textarea></textarea> <button id='caps'>ALL CAPS</button> <button id='lower'>all lowercase</button> <button id='cancel'>Cancel</button> $(document).ready(function(){ $('#caps').click(function() { $text = $('textarea').val(); $('textarea').val($text.toUpperCase()); }); $('#lower').click(function() { $text = $('textarea').val(); $('textarea').val($text.toLowerCase()); }); }) |
goody-goody,
$(document).ready(function() { var $text; $('#caps').click(function() { $text = $('textarea').val(); $('textarea').val($text.toUpperCase()); }); $('#lower').click(function() { $text = $('textarea').val(); $('textarea').val($text.toLowerCase()); }); $('#cancel').click(function() { if ($text) { $('textarea').val($text); $text = '' } }); }) |
$('textarea') лучше вынести за функцию, чтобы не парсить каждый раз весь документ.
|
рони, спасибо, я не совсем правильно выразилась, чтоб отменяло не все действия сразу, а по очереди, как в ворде. такое возможно?
|
goody-goody,
да |
goody-goody,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <textarea></textarea> <button id='caps'>ALL CAPS</button> <button id='lower'>all lowercase</button> <button id='cancel'>Cancel</button> <script type='text/javascript' src='http://code.jquery.com/jquery-2.1.4.js'></script> <script> $(document).ready(function() { var temp = [], area = $('textarea'); $('#caps').click(function() { $text = area.val(); area.val($text.toUpperCase()); if(temp[0] != $text) temp.unshift($text) }); $('#lower').click(function() { $text = area.val(); area.val($text.toLowerCase()); if(temp[0] != $text) temp.unshift($text) }); $('#cancel').click(function() { $text = temp.shift(); if ($text) { area.val($text); } }); }) </script> </body> </html> |
рони, спасибо огромное!
|
рони,
лучше тогда push/pop, массив легче перетрахивать (А. Г. Лукашенко ©) :) |
laimas,
ок но 0 короче чем temp.length-1 :) |
Это не аргумент :), удалить первый элемент массива, это удалить его, затем сдвинуть все элементы массива, а с конца так только удаление.
|
Часовой пояс GMT +3, время: 22:07. |