Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 02.10.2017
Сообщений: 6

Не могу понять как использовать переменные

20.03.2018, 15:57. Показов 965. Ответов 1

Студворк — интернет-сервис помощи студентам
Не могу понять как использовать переменные
html, files_path после отработки функции
$('.upload_files').on( 'click', function( event ){
...}
пробую например вывести в консоль console.log($html) внутри
этой функции $(".add2cart").click(function () {...}

выдается ошибка "Uncaught ReferenceError: $html is not defined"

Ниже весь код:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
$(window).ready(function () {
    (function($){
 
var files; // переменная. будет содержать данные файлов
 
// заполняем переменную данными файлов, при изменении значения file поля
$('input[type=file]').on('change', function(){
    files = this.files;
});
 
 
// обработка и отправка AJAX запроса при клике на кнопку upload_files
$('.upload_files').on( 'click', function( event ){
 
    event.stopPropagation(); // остановка всех текущих JS событий
    event.preventDefault();  // остановка дефолтного события для текущего элемента - клик для <a> тега
 
    // ничего не делаем если files пустой
    if( typeof files == 'undefined' ) return;
 
    // создадим данные файлов в подходящем для отправки формате
    var data = new FormData();
    $.each( files, function( key, value ){
        data.append( key, value );
    });
 
    // добавим переменную идентификатор запроса
    data.append( 'my_file_upload', 1 );
 
    // AJAX запрос
    $.ajax({
        url         : '/wp-content/themes/basic-pro/submit.php',
        type        : 'POST',
        data        : data,
        cache       : false,
        dataType    : 'json',
        // отключаем обработку передаваемых данных, пусть передаются как есть
        processData : false,
        // отключаем установку заголовка типа запроса. Так jQuery скажет серверу что это строковой запрос
        contentType : false,
        // функция успешного ответа сервера
        success     : function( respond, status, jqXHR ){
 
            // ОК
            if( typeof respond.error === 'undefined' ){
                // файлы загружены, делаем что-нибудь
 
                // покажем пути к загруженным файлам в блок '.ajax-reply'
                
                var files_path = respond.files;
                var $html = '';
                $.each( files_path, function( key, val ){
                     $html += val +'<br>';
                } )
 
                $('.ajax-reply').html( $html );
            }
            // error
            else {
                console.log('ОШИБКА: ' + respond.error );
            }
        },
        // функция ошибки ответа сервера
        error: function( jqXHR, status, errorThrown ){
            console.log( 'ОШИБКА AJAX запроса: ' + status, jqXHR );
        }
    });
    $(".add2cart").click(function () {
        description = "";
        if ($("[data-id=" + $(this).data("id") + "]").hasClass("descriptionField")) {
            $(".descriptionField[data-id=" + $(this).data("id") + "]").removeClass("error");
            if ($(".descriptionField[data-id=" + $(this).data("id") + "]").val() < 8) {
                $(".descriptionField[data-id=" + $(this).data("id") + "]").addClass("error");
                return false;
            } else {
                description = $(".descriptionField[data-id=" + $(this).data("id") + "]").val();
                // description = description + " www ";
                console.log($html);
            }
        }
        $('#basket').removeClass('close-basket');
        $('button.add2cart[data-id=' + $(this).data("id") + ']').fadeOut();
        $('p.descriptionField-p[data-id=' + $(this).data("id") + ']').fadeOut();
        $('.descriptionField[data-id=' + $(this).data("id") + ']').fadeOut();
        $('.selectPrice[data-id=' + $(this).data("id") + ']').fadeOut();
        $('button.showFields[data-id=' + $(this).data("id") + ']').fadeIn();
        $('button.showFields[data-id=' + $(this).data("id") + ']').addClass('added');
        $('button.showFields[data-id=' + $(this).data("id") + ']').after('<i></i>');
        $.ajax({
            method: "post",
            url: "/ajax/common.php",
            data: ({
                action: "add2cart",
                name: $(this).data("name"),
                price: ($(".selectPrice[data-id=" + $(this).data("id") + "]").val() > 0 ? $(".selectPrice[data-id=" + $(this).data("id") + "]").val() : $(this).data("price")),
                descr: description
            }),
            success: function () {
                showcart();
                messageShowAddBasket("<p>Услуга добавлена<br><button onclick='showbasketlist(true);'>перейти в корзину</button></p>");
            }
        })
    });
 
});
 
    
})(jQuery);
 
});
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.03.2018, 15:57
Ответы с готовыми решениями:

Пытаюсь понять комбинаторику.Не могу понять какую формулу использовать
Добрый день. Уже второй день бьюсь над комбинаторикой. Проблема стоит в том, что не могу понять, какую формулу нужно...

Не могу понять как правильно прописывается процедура Static void Sums (int n) и как использовать методы
Дано натуральное число n. Напишите процедуру static void Sums (int n), которая выводит на консоль для каждого числа i (от 1 до n)...

Переменные изменяются, не могу понять почему
Доброго времени суток. Я делаю платформер и пытался создать систему, которая будет определять с каких сторон персонажа окружают стены...

1
90 / 90 / 48
Регистрация: 07.12.2011
Сообщений: 215
20.03.2018, 22:21
В js работает функциональная область видимости. В функции $(".add2cart").click(function () {...} у вас действительно не определено переменной $html. Она определена в другой функции. У нее своя область видимости не видимая из той, где вы пробуете доступиться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.03.2018, 22:21
Помогаю со студенческими работами здесь

Не могу понять, какой элемент использовать
Доброе утро всем. Подскажите пожалуйста, какой элемент используется в мобильном приложении vk (да и еще в куче других). Я про съезжающую...

Не могу понять, зачем использовать return
Ув. программисты, Почему так часто используют функции, которые что-то возвращают ? Почему нельзя что либо возвращать просто через cout...

Не могу использовать переменные вышестоящего класса в нижестоящем
Столкнулся с такой проблемой, что не могу использовать переменные вышестоящего класса в нижестоящем, т.к. компилятор при чтении кода...

Как понять поставленную задачу. Не могу понять этот полиморфизм?
A software academy teaches two types of courses: local courses that are held in some of the academy’s local labs and offsite courses held...

Стек на основе массива структур - эт как понять читаю литературу и не могу понять!
Стек статически (на основе массива структур). Пример структура &quot;Товар&quot; которая включает в себя: № по каталогу(ключ), Название, цена, срок...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru