Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.12.2015, 22:13
Интересующийся
Отправить личное сообщение для goody-goody Посмотреть профиль Найти все сообщения от goody-goody
 
Регистрация: 13.10.2015
Сообщений: 17

Как отменить действие обработчика?
Добрый вечер. Возник такой вопрос, можно ли по клику на кнопку отменить предыдущую обработку текста? Не полностью отменить все действия, а только предыдущее. Спасибо
<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());
    });
})
Ответить с цитированием
  #2 (permalink)  
Старый 24.12.2015, 23:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

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 = ''
           }

       });
   })
Ответить с цитированием
  #3 (permalink)  
Старый 25.12.2015, 04:06
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

$('textarea') лучше вынести за функцию, чтобы не парсить каждый раз весь документ.
Ответить с цитированием
  #4 (permalink)  
Старый 25.12.2015, 09:45
Интересующийся
Отправить личное сообщение для goody-goody Посмотреть профиль Найти все сообщения от goody-goody
 
Регистрация: 13.10.2015
Сообщений: 17

рони, спасибо, я не совсем правильно выразилась, чтоб отменяло не все действия сразу, а по очереди, как в ворде. такое возможно?
Ответить с цитированием
  #5 (permalink)  
Старый 25.12.2015, 10:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

goody-goody,
да
Ответить с цитированием
  #6 (permalink)  
Старый 25.12.2015, 10:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

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>

Последний раз редактировалось рони, 27.12.2015 в 19:33.
Ответить с цитированием
  #7 (permalink)  
Старый 26.12.2015, 16:39
Интересующийся
Отправить личное сообщение для goody-goody Посмотреть профиль Найти все сообщения от goody-goody
 
Регистрация: 13.10.2015
Сообщений: 17

рони, спасибо огромное!
Ответить с цитированием
  #8 (permalink)  
Старый 27.12.2015, 19:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

рони,
лучше тогда push/pop, массив легче перетрахивать (А. Г. Лукашенко ©)
Ответить с цитированием
  #9 (permalink)  
Старый 27.12.2015, 19:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

laimas,
ок но 0 короче чем temp.length-1
Ответить с цитированием
  #10 (permalink)  
Старый 27.12.2015, 19:41
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Это не аргумент , удалить первый элемент массива, это удалить его, затем сдвинуть все элементы массива, а с конца так только удаление.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запретить переход на страницу обработчика формы в action EvilDoom AJAX и COMET 8 08.09.2014 12:05
Как удалить предыдущее действие... nike90 jQuery 2 11.08.2012 17:00
как отменить скролл в мобильном браузере только для одного элемента? mitiya Общие вопросы Javascript 5 09.08.2012 23:38
как отменить стандартное действие при привязке обработчика? YISHIMITSY Events/DOM/Window 1 21.05.2010 22:32
Как отменить прокрутку при клике Alekson jQuery 1 30.03.2009 20:53