Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.04.2012, 21:28
Аспирант
Отправить личное сообщение для okapo Посмотреть профиль Найти все сообщения от okapo
 
Регистрация: 15.04.2011
Сообщений: 56

остоновка анимаций в кнопке
имею вот такую функцию

$.fn.sload = function ()
 {
  var b = [".", "..", "...", ".."];
  return this.each(function() {
    var i = 0, self = this;
    var a = setInterval(function () { 
    $(self).val("Подождите " + b[i]); 
      i = (i < 3)?(i+1):0;
    }, 500);
  });
}


вот скрипт работы

$("#sendForm").submit(function()
    {
		$(this).find(':submit').sload();
		var str = $(this).serialize();
        $.ajax(
		{
            type: "POST",
            url: "inc/modules/ads/tasks/handler_add.php",
            data: str,
            dataType: "json",
            success: function(msg)
            {
                $("#note").ajaxComplete(function(event, request, settings)
                {
                    $("input:submit").val('Отправить');
		    if (msg.status) 
		    {
                        $("#sendForm").hide();
                    }
                    $(this).html(msg.message);
                });
            }
        });
        return false;
    });


но после результат от сервера функция .sload() еще работает, как ее остановить ?
Ответить с цитированием
  #2 (permalink)  
Старый 04.04.2012, 21:35
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

  1. добавить в функцию вообще возможность приостановки циклического выполнения (я про интервал)
    $.fn.sload = function ()
     {
      var b = [".", "..", "...", ".."]*!*, a;*/!*
      this.each(function() {
        var i = 0, self = this;
        a = setInterval(function () { 
        $(self).val("Подождите " + b[i]); 
          i = (i < 3)?(i+1):0;
        }, 500);
      });
      *!*return this.data('interval_id', a);*/!*
    }
    
  2. использовать эту возможность, когда потребуется.
    *!*var id = */!*$(this).find(':submit').sload()*!*.data('interval_id');*/!*
    

    и в любом месте видимости скоупа, где определена переменная id :
    clearInterval(id);
    
Ответить с цитированием
  #3 (permalink)  
Старый 05.04.2012, 23:40
Аспирант
Отправить личное сообщение для okapo Посмотреть профиль Найти все сообщения от okapo
 
Регистрация: 15.04.2011
Сообщений: 56

а как сделать кнопку еще disabled ?
Ответить с цитированием
  #4 (permalink)  
Старый 05.04.2012, 23:57
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

добавить ей такой атрибут.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как при быстром многократном клике по кнопке обрабатывать только первый клик battrack jQuery 3 22.03.2012 08:47
дать клик по кнопке alerzo Events/DOM/Window 3 10.09.2011 16:21
клик по кнопке alerzo Events/DOM/Window 1 20.08.2011 22:39
В окне confirm установить фокус на кнопке "Отмена". Natali Элементы интерфейса 2 01.09.2009 09:50
цвет кнопки, цвет текста на кнопке, всплывающее окно matana Общие вопросы Javascript 8 26.05.2009 16:08