Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> THIS на чистом JS как писать? THIS на чистом JS как писать? 
:(
    Опции темы
Cheizer
  Дата 11.8.2016, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 28.1.2011

Репутация: нет
Всего: нет



Дорогие друзья, подскажите как реализовать THIS на JS.

Ситуация такая, есть JS файл обработчик формы. Который обрабатывает данные с формы и отправляет их методом AJAX на php файл для отправки.
У формы после отправки, функция showFu() показывает текст при удачной отправке, мол все отправилось бла бла бла. 

Но вот от момента отправки и ответом от сервера, есть секунды ожидания.  Которые я решил занять гифкой загрузки.
Добавил в js обработчик две функции stopLoader  и startLoader. Которые показывают и скрывают gif. Вызвал эти функцию в AJAX запросе.

Но вот проблема, форм на странице много, и когда GIF показывается для одной, он так же показывает и для другой формы. 

ВОПРОС, как добавить в JS код THIS? Что бы это все работало для текущей формы?????

вот две функции:
Код

stopLoader: function () 
{
  $(".loadImg").hide()
},              
                    
 startLoader: function () 
 {
    var imgObj = $(".loadImg")
    imgObj.show()
 },


А вот они в запросе:
Код

                    $.ajax({
                                type: "POST",
                                url: _.mailURL,
                                data: {
                                    .......
                                    start: _.startLoader()
                                },
                                success: function () {
                                    _.stopLoader()
                                    _.showFu()
                                }

PM MAIL   Вверх
ksnk
Дата 11.8.2016, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Вероятно, так сработает. Если this на момент вызова запроса указывает в нужное место.
Код

var that=this; 
$.ajax({
                                type: "POST",
                                url: that.mailURL,
                                data: {
                                    .......
                                    start: that.startLoader()
                                },
                                success: function () {
                                    that.stopLoader()
                                   



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Cheizer
Дата 11.8.2016, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 28.1.2011

Репутация: нет
Всего: нет



Цитата(ksnk @ 11.8.2016,  18:38)
Вероятно, так сработает. Если this на момент вызова запроса указывает в нужное место.
Код

var that=this; 
$.ajax({
                                type: "POST",
                                url: that.mailURL,
                                data: {
                                    .......
                                    start: that.startLoader()
                                },
                                success: function () {
                                    that.stopLoader()
                                   

К сожалению ошибка с таким вариантом  that.stopLoader()

там все функции должны вызываться так   _.startLoader()

Я не гуру в JS, не знаю почему так. :( 
PM MAIL   Вверх
ksnk
Дата 11.8.2016, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Код

var _=this; 
$.ajax({
                                type: "POST",
                                url: _.mailURL,
                                data: {
                                    .......
                                    start: _.startLoader()
                                },
                                success: function () {
                                    _.stopLoader()
                                   

Может так?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Cheizer
Дата 12.8.2016, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 28.1.2011

Репутация: нет
Всего: нет



Цитата(ksnk @ 11.8.2016,  22:54)
Код

var _=this; 
$.ajax({
                                type: "POST",
                                url: _.mailURL,
                                data: {
                                    .......
                                    start: _.startLoader()
                                },
                                success: function () {
                                    _.stopLoader()
                                   

Может так?

И так нет :( 

Я по коду посмотрел, там есть this, прописывается и используется так 
Код

      var th = $(this),
        req = _.isRequired(th)

     
но даже так все равно у всех форм на сайте появляется GIF load. А не у текущей формы.                    
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0704 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.