Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для vnmslf
25 / 25 / 5
Регистрация: 13.03.2015
Сообщений: 215

Исправление бага работы скрипта

21.06.2016, 12:59. Показов 809. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Есть сайт, на котором кое-что работает через одно место. Как это поправить - у меня мозгов не хватает (не силен я в ларавел и ангулар). Но идею, как "обойти" это я придумал. Осталось за малым: реализация !

Как должно работать:
На одной из страниц сайта можно выбрать "щиты", при нажатии по ссылке "Отправить заказ" мы отправляемся на страницу, где списком отображаются выбранные щиты и висит форма обратной связи, надо написать имя, телефон, почту, доп. комментарий и отправить. Соответственно, данный "заказ" приходит на почту, менеджер перезванивает клиенту и дальше все как по маслу.

Как работает сейчас?
На странице заказа щитов выбираются щиты, но при нажатии по ссылке "Отправить заказ" эти самые выбранные щиты не передаются на новую страницу. И это был бы тупик, пришлось бы искать фрилансера или просто человека, который разбирается в ларавел, ангулар и смог бы это поправить.

Но! Мною замечено следующее:
При входе на страницу, где мы выбираем щиты нужно выбрать эти щиты (сколько нужно), затем вместо "Отправить заказ" вновь зайти на эту же страницу (можно хоть просто обновить страницу - необходимый эффект будет достигнут). Выбранные щиты будут до сих пор отмечены как выбранные - теперь нажимаем на "Отправить заказ" - далее все работает как в пункте "Как должно работать", который я описывал выше.

Так вот... собственно... Как повесить на кнопку "Отправить заказ" сначала отправление на эту же страницу, а затем, скажем, через setTimeout на, скажем, 200 (0.2 секунды же, верно?) отправить его на страницу оформления заказа. Можно ли это сделать не копая сильно код, а одним скриптом, расположенным на одной странице сайта (в идеале было бы так)?
Заранее спасибо, уже перекопал полгугла - но рабочего варианта пока не нашел..
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.06.2016, 12:59
Ответы с готовыми решениями:

Исправление скрипта (ошибка только в IE)
Есть сайт, работает нормально везде, кроме интернет эксплорера. Пишет ошибку 'console' - определение отсутствует. Как можно поправить?

Исправление бага готового приложения
Честно говоря, я не знал, куда написать, вроде этот раздел самый подходящий. Есть достаточно нетривиальная задача. В одной игре (Need...

Запрос к БД не выполняется из php-скрипта в зависимости от длительности работы скрипта
Не так давно переехал к другому провайдеру со своим VDS-ом. Все настройки идентичны предыдущему. Но перестал работать php-скрипт,...

13
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
21.06.2016, 13:45
vnmslf, вы хотите костылик нафигачить?
лучше бы выложили код сюда, хоть понятно было бы в чём проблема именно, а так на пальцах гадаем

да и не хорошо, чтобы у юзера были какие-то левые перезагрузки/окна
0
 Аватар для vnmslf
25 / 25 / 5
Регистрация: 13.03.2015
Сообщений: 215
21.06.2016, 16:22  [ТС]
Цитата Сообщение от BANO Посмотреть сообщение
vnmslf, вы хотите костылик нафигачить?
Да, что-то вроде того. Т.к. изучать Ангулар нет времени (сроки от руководства как всегда радуют).
Цитата Сообщение от BANO Посмотреть сообщение
лучше бы выложили код сюда
Очень много кода.. Точнее... что выкладывать?? Я даже в структуре толком не соображаю. Т.е., я знаю где контроллеры, где модели и представления (но это же все от ларавел), а раз вы перенесли эту тему в Ангулар, то, думаю, что скорее всего дело как раз в нем? Или это как раз из-за "окостыливания", которое я пытаюсь сделать?
Цитата Сообщение от BANO Посмотреть сообщение
да и не хорошо, чтобы у юзера были какие-то левые перезагрузки/окна
Данные ссылки на заказ предполагается скрыть от индексации, этими "перелинками" по сайту можно "пожертвовать" в пользу работоспособности функционала сайта, да и чтобы поисковые боты не сочли мои редиректы за плохой тон или серое/черное сео.
0
21.06.2016, 21:14

Не по теме:

vnmslf, я перенёс потому что тут люди понимают как с ангуляром работать
я не понимаю

0
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
22.06.2016, 07:30
чет фигня какая-то. без кода реально непонятно.
 Комментарий модератора 
Нарушение пункта правил 5.2
предупреждение
0
 Аватар для vnmslf
25 / 25 / 5
Регистрация: 13.03.2015
Сообщений: 215
24.06.2016, 15:19  [ТС]
Думаю, наверное топик следует перенести просто в javascript (думаю, что так будет правильно, т.к. вроде бы тут дело не в angular) - если не сложно .

На странице заказа щитов выбираются щиты и кладутся в localstorageGet, затем они передаются на другую страницу, где и происходит заказ. Как я и описывал выше, сейчас это происходит только если "перезагрузить" страницу. Могу привести код (его капец как много!), если кто шарит и кому не сложно, подскажите, почему так происходит (почему до перезагрузки страницы выбранные щиты не сохраняются и/или не передаются в localstorageGet?), и как это поправить?

Собственно... довольно_много_кода:
Кликните здесь для просмотра всего текста
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
function arrayObjectIndexOf(e,t,r){
    for(var a=0,o=e.length;o>a;a++)
        if(e[a][r]===t)return a;
    return-1
}
function triads(e){
    return e=e.toString(),e.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g,"$1 ")
}
function jsTils(e,t){
    var r;return count=e%100,count>=5&&count<=20?r=t[2]:(count%=10,r=1==count?t[0]:count>=2&&count<=4?t[1]:t[2]),r
}
function localstorageGet(e){
    return Modernizr.localstorage?lscache.get(e)?lscache.get(e):(localStorage.clear(),!1):void 0
}
function localstorageSet(e,t,r){
    Modernizr.localstorage&&lscache.set(e,JSON.stringify(t),1440),(r=r||function(){})()
}
$(function(){
    function e(e){
        a.slideUp(300),a.eq(e).slideDown(300,function(){
            _billboards_map_&&_billboards_map_.container.fitToViewport()
        })
    }
    function t(){
        $activeBtn=r.filter(".active"),index=r.index($activeBtn),e(index)
    }
    var r=$(".tabs-btn>a.tab-btn"),a=$(".tabs>.tab");t(),r.click(function(e){
        e.preventDefault(),$(this).is(".active")||(r.removeClass("active"),$(this).addClass("active"),_mapMarkers_.forEach(function(e){
            e.marker.balloon.close()
        }),
        t())
    })
});
var _mapMarkers_=[],_billboards_map_;$(function(){function e(){var e=localstorageGet("billboards_ids");
    $(".billboards #list-view tr").removeClass("ordered"),
    _mapMarkers_.forEach(function(e){
        var t=e.marker.properties.get("type");
        e.marker.properties.set("btn_type","Заказать"),
        e.marker.properties.set("ordered",""),
        e.marker.options.set("iconImageHref",o[t])
    }),
    e&&e.forEach(function(e){
        $(".billboards #list-view tr[data-id="+e+"]").addClass("ordered"),
        _mapMarkers_.forEach(function(t){
            if(e==t.id){
                var r=t.marker.properties.get("type");
                t.marker.properties.set("btn_type","Отменить"),
                t.marker.properties.set("ordered","ordered"),
                t.marker.options.set("iconImageHref",i[r])
            }
        })
    })
}
function t(){
    var e=localstorageGet("billboards_ids"),t=0,r=0;
    if(e){
        e.forEach(function(e){
            billboards_json.items.forEach(function(a){
                e==a.id&&(t+=1,r+=a.price)
            })
        });
        var a=jsTils(t,["Выбран ","Выбрано ","Выбрано "])+t+jsTils(t,[" щит"," щита"," щитов"]);
        r=triads(r),s.find(".count").text(a),s.find(".numbers").text(r+" рублей."),0==t?s.hide():s.show()
    }
    else s.hide()
}
function r(){
    "undefined"!=typeof billboards_json&&localstorageSet("billboards_json",billboards_json.items)
}
function a(){
    if($("#request-form .selected-billboards").size()){
        var e=localstorageGet("billboards_ids"),t=localstorageGet("billboards_json");
        if(e&&t&&e.length>0){
            var r=[];e.forEach(function(e){
                t.forEach(function(t){
                    e==t.id?$('<div class="unit" data-id="'+t.id+'">'+t.address+'<a href="" class="close"></a></div>').prependTo("#request-form .selected-billboards .list"):r.push(e)
                })
            }),
            r.forEach(function(t){
                e.splice(e.indexOf(t),1)
            })
        }else 
            $("#request-form .selected-billboards .title").text("Вы не выбрали ни одного щита."),
            $("#request-form .selected-billboards .more a").text("Добавить щит")
        }
    }
    var o={
            yellow:tribuna_theme_path_+"/images/ico-marker_yellow.png",green:tribuna_theme_path_+"/images/ico-marker_green.png",red:tribuna_theme_path_+"/images/ico-marker_red.png"
        },
        i={
            yellow:tribuna_theme_path_+"/images/ico-marker_yellow_ordered.png",green:tribuna_theme_path_+"/images/ico-marker_green_ordered.png",red:tribuna_theme_path_+"/images/ico-marker_red_ordered.png"
        };
    "undefined"!=typeof billboards_json&&ymaps.ready(function(){
        var t=new ymaps.Map("billboard-map",{
                center:billboards_json.center,zoom:billboards_json.zoom
            }),
            r=ymaps.templateLayoutFactory.createClass('<div class="billboard-mark">          <div class="mark {{properties.type}}"></div><div class="address">{{properties.address}}</div>          <div class="info">            <span class="reserved">{{properties.reserved}}<strong>{{properties.strong}}</strong>,<br>            <strong>{{properties.price}} руб.</strong></div>          <a href="{{properties.photo}}" class="photo">Фото</a><br>          <a href="" data-id="{{properties.id}}" class="order {{properties.ordered}}">{{properties.btn_type}}</a>        </div>',{});
        _billboards_map_=t,t.behaviors.disable("scrollZoom"),
        $.each(billboards_json.items,function(a,i){
            var s="";
            if(i.reserved){
                var n="Зарезервирован до ";
                s=i.reserved
            }
            else if(i.available){
                var n="Доступно через ";s=i.available+jsTils(i.available,[" день"," дня"," дней"])
            }
            else var n="Доступен";var l=new ymaps.Placemark(i.position,{
                type:i.type,address:i.address,reserved:n,strong:s,price:triads(i.price),photo:i.photo,id:i.id,btn_type:"Заказать",ordered:""
            },
            {
                balloonContentLayout:r,balloonPanelMaxMapArea:0,balloonMaxWidth:500,iconLayout:"default#image",iconImageHref:o[i.type],iconImageSize:[53,65],iconImageOffset:[-26,-65]
            });
            l.events.add("balloonopen",function(){}),_mapMarkers_.push({id:i.id,position:i.position,marker:l}),t.geoObjects.add(l),e()
        })
    });
    var s=$(".tabs-btn .selected");
    if("undefined"!=typeof billboards_json){
        var n=".billboards #list-view .order a, .billboard-mark .order";
        $(document).on("click",n,function(r){
            var a=$(this).closest("tr").attr("data-id")||$(this).attr("data-id");
            if(localstorageGet("billboards_ids"))
                var o=localstorageGet("billboards_ids");
            else 
                var o=[];
            if($(this).is(".ordered")||$(this).closest("tr").is(".ordered")){
                var o=localstorageGet("billboards_ids");
                o.splice(o.indexOf(a),1)
            }
            else-1==o.indexOf(a)&&o.push(a);
            localstorageSet("billboards_ids",o),r.preventDefault(),t(),e()
        }),t(),e()
    }
    $(".billboards #list-view .price .numbers").each(function(){
        var e=$(this).text();
        $(this).text(triads(e))
    }),r(),$(document).on("click","#request-form .selected-billboards .unit .close",function(e){
        var t=$(this).closest(".unit").attr("data-id"),r=localstorageGet("billboards_ids");
        r.splice(r.indexOf(t),1);
        var o=$(this);
        localstorageSet("billboards_ids",r,function(){
            o.closest(".unit").fadeOut(300,function(){
                0==r.length&&a()
            })
        }),e.preventDefault()
    }),a(),$("#request-form").validate({
        rules:{
            org:"required",phone:"required"
        },messages:{
            org:"Обязательное поле",phone:"Обязательное поле"
        },submitHandler:function(e){
            var t=localstorageGet("billboards_ids");
            return t.length>0?($.ajax({
                type:$(e).attr("method"),url:$(e).attr("action"),dataType:"json",data:$(e).serialize()+"&"+$.param({
                    billboards:t
                })
            }).done(function(e){
                jsonResponse=e,1==jsonResponse.status?($("#request-form .wrapper").slideUp(),$("#request-form .final").slideDown(),t=[],localstorageSet("billboards_ids",t)):alert("Произошёл сбой. Пожалуйста попробуйте ещё раз.")
            }).fail(function(){
                alert("Произошёл сбой. Пожалуйста попробуйте ещё раз.")
            }),$("#request-form button").prop("disabled",!0)):$("#request-form .selected-billboards .title").css({color:"red"}),0==$(".selected-billboards").size()&&($.ajax({
                type:$(e).attr("method"),url:$(e).attr("action"),dataType:"json",data:$(e).serialize()
            }).done(function(e){
                jsonResponse=e,1==jsonResponse.status?($("#request-form .wrapper").slideUp(),$("#request-form .final").slideDown()):alert("Произошёл сбой. Пожалуйста попробуйте ещё раз.")
            }).fail(function(){
                alert("Произошёл сбой. Пожалуйста попробуйте ещё раз.")
            }),$("#request-form button").prop("disabled",!0)),!1
        },invalidHandler:function(){
            var e=localstorageGet("billboards_ids");
            e.length<=0&&$("#request-form .selected-billboards .title").css({color:"red"})
        }
    }),$("body.billboards #list-view td.photo a.address").click(function(e){
        e.preventDefault();
        var t=$(this).closest("tr").attr("data-id");
        $(".tabs-btn .map-view").click(),setTimeout(function(){
            _mapMarkers_.forEach(function(e){
                e.id==t&&(_billboards_map_.setZoom(18),_billboards_map_.setCenter(e.position),e.marker.balloon.open())
            })
        },500)
    })
}),$(function(){
    function e(e,t){
        t=t||function(){};var r=e.magnificPopup({
            type:"image",removalDelay:500,callbacks:{
                beforeOpen:function(){
                    this.st.image.markup=this.st.image.markup.replace("mfp-figure","mfp-figure mfp-with-anim"),this.st.mainClass="mfp-move-from-top"
                },close:function(){
                    t()
                }
            },closeOnContentClick:!0,showCloseBtn:!1,tLoading:"Загрузка..."
        });return r
    }e($("#list-view td.photo a.photo")),$(document).on("click",".billboard-mark .photo",function(t){
        t.preventDefault(),e($(this)).magnificPopup("open")
    }),$(".content-wrapper .photos").magnificPopup({
        delegate:"a",type:"image",gallery:{
            enabled:!0,tPrev:"Предыдущая (Стрелка влево)",tNext:"Следующая (Стрелка вправо)",tCounter:'<span class="mfp-counter">%curr% из %total%</span>'
        },callbacks:{
            beforeOpen:function(){
                this.st.image.markup=this.st.image.markup.replace("mfp-figure","mfp-figure mfp-with-anim"),this.st.mainClass="mfp-move-from-top"
            }
        },image:{
            titleSrc:"title"}
        })
}),$(function(){
    ymaps.ready(function(){
        var e=new ymaps.Map($("body.index .small-map, body.contacts .map")[0],{
            center:[47.24470432,39.72322986],zoom:18
        }),t=new ymaps.Placemark([47.24470432,39.72322986],{},{
            iconLayout:"default#image",iconImageHref:tribuna_theme_path_+"/images/ico-marker-mark.png",iconImageSize:[50,73],iconImageOffset:[-25,-73]
        });
        e.geoObjects.add(t),e.controls.remove("mapTools"),e.controls.remove("scaleLine"),e.controls.remove("searchControl"),e.controls.remove("trafficControl")
    })
}),
$(function(){
    $(".contacts-form").validate({
        rules:{
            name:"required",phone:"required",content:"required"
        },
        messages:{
            name:"Обязательное поле",phone:"Обязательное поле",content:"Обязательное поле"
        },
        submitHandler:function(e){
            return $.ajax({
                type:$(e).attr("method"),
                url:$(e).attr("action"),
                data:$(e).serialize()
            }).done(function(){
                $(".contacts-form .wrapper").slideUp(),
                $(".contacts-form .final").slideDown()
            }),
            !1
        }
    })
});
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
24.06.2016, 15:36
vnmslf, тут код на jq, какой нафиг анугляр?
0
 Аватар для vnmslf
25 / 25 / 5
Регистрация: 13.03.2015
Сообщений: 215
24.06.2016, 15:43  [ТС]
Цитата Сообщение от BANO Посмотреть сообщение
vnmslf, тут код на jq, какой нафиг анугляр?
Это для меня слегка "темный" лес. Разработчик сайта утверждал, что этот (и еще несколько сайтов от него же) на ангуларе. Другие сайты - четко на ангулар. То, что тут не оказалось ангулара.. ну блин.. я же говорю: я в этом не силен Пытаюсь работать с тем что есть...
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
24.06.2016, 16:04
в любом случае, вот чуть более читабельный код
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
function arrayObjectIndexOf(e, t, r) {
    for (var a = 0, o = e.length; o > a; a++)
        if (e[a][r] === t) return a;
    return -1
}
 
function triads(e) {
    return e = e.toString(), e.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, "$1 ")
}
 
function jsTils(e, t) {
    var r;
    return count = e % 100, count >= 5 && count <= 20 ? r = t[2] : (count %= 10, r = 1 == count ? t[0] : count >= 2 && count <= 4 ? t[1] : t[2]), r
}
 
function localstorageGet(e) {
    return Modernizr.localstorage ? lscache.get(e) ? lscache.get(e) : (localStorage.clear(), !1) : void 0
}
 
function localstorageSet(e, t, r) {
    Modernizr.localstorage && lscache.set(e, JSON.stringify(t), 1440), (r = r || function() {})()
}
$(function() {
    function e(e) {
        a.slideUp(300), a.eq(e).slideDown(300, function() {
            _billboards_map_ && _billboards_map_.container.fitToViewport()
        })
    }
 
    function t() {
        $activeBtn = r.filter(".active"), index = r.index($activeBtn), e(index)
    }
    var r = $(".tabs-btn>a.tab-btn"),
        a = $(".tabs>.tab");
    t(), r.click(function(e) {
        e.preventDefault(), $(this).is(".active") || (r.removeClass("active"), $(this).addClass("active"), _mapMarkers_.forEach(function(e) {
                e.marker.balloon.close()
            }),
            t())
    })
});
var _mapMarkers_ = [],
    _billboards_map_;
$(function() {
        function e() {
            var e = localstorageGet("billboards_ids");
            $(".billboards #list-view tr").removeClass("ordered"),
                _mapMarkers_.forEach(function(e) {
                    var t = e.marker.properties.get("type");
                    e.marker.properties.set("btn_type", "Заказать"),
                        e.marker.properties.set("ordered", ""),
                        e.marker.options.set("iconImageHref", o[t])
                }),
                e && e.forEach(function(e) {
                    $(".billboards #list-view tr[data-id=" + e + "]").addClass("ordered"),
                        _mapMarkers_.forEach(function(t) {
                            if (e == t.id) {
                                var r = t.marker.properties.get("type");
                                t.marker.properties.set("btn_type", "Отменить"),
                                    t.marker.properties.set("ordered", "ordered"),
                                    t.marker.options.set("iconImageHref", i[r])
                            }
                        })
                })
        }
 
        function t() {
            var e = localstorageGet("billboards_ids"),
                t = 0,
                r = 0;
            if (e) {
                e.forEach(function(e) {
                    billboards_json.items.forEach(function(a) {
                        e == a.id && (t += 1, r += a.price)
                    })
                });
                var a = jsTils(t, ["Выбран ", "Выбрано ", "Выбрано "]) + t + jsTils(t, [" щит", " щита", " щитов"]);
                r = triads(r), s.find(".count").text(a), s.find(".numbers").text(r + " рублей."), 0 == t ? s.hide() : s.show()
            } else s.hide()
        }
 
        function r() {
            "undefined" != typeof billboards_json && localstorageSet("billboards_json", billboards_json.items)
        }
 
        function a() {
            if ($("#request-form .selected-billboards").size()) {
                var e = localstorageGet("billboards_ids"),
                    t = localstorageGet("billboards_json");
                if (e && t && e.length > 0) {
                    var r = [];
                    e.forEach(function(e) {
                            t.forEach(function(t) {
                                e == t.id ? $('<div class="unit" data-id="' + t.id + '">' + t.address + '<a href="" class="close"></a></div>').prependTo("#request-form .selected-billboards .list") : r.push(e)
                            })
                        }),
                        r.forEach(function(t) {
                            e.splice(e.indexOf(t), 1)
                        })
                } else
                    $("#request-form .selected-billboards .title").text("Вы не выбрали ни одного щита."),
                    $("#request-form .selected-billboards .more a").text("Добавить щит")
            }
        }
        var o = {
                yellow: tribuna_theme_path_ + "/images/ico-marker_yellow.png",
                green: tribuna_theme_path_ + "/images/ico-marker_green.png",
                red: tribuna_theme_path_ + "/images/ico-marker_red.png"
            },
            i = {
                yellow: tribuna_theme_path_ + "/images/ico-marker_yellow_ordered.png",
                green: tribuna_theme_path_ + "/images/ico-marker_green_ordered.png",
                red: tribuna_theme_path_ + "/images/ico-marker_red_ordered.png"
            };
        "undefined" != typeof billboards_json && ymaps.ready(function() {
            var t = new ymaps.Map("billboard-map", {
                    center: billboards_json.center,
                    zoom: billboards_json.zoom
                }),
                r = ymaps.templateLayoutFactory.createClass('<div class="billboard-mark">          <div class="mark {{properties.type}}"></div><div class="address">{{properties.address}}</div>          <div class="info">            <span class="reserved">{{properties.reserved}}<strong>{{properties.strong}}</strong>,<br>            <strong>{{properties.price}} руб.</strong></div>          <a href="{{properties.photo}}" class="photo">Фото</a><br>          <a href="" data-id="{{properties.id}}" class="order {{properties.ordered}}">{{properties.btn_type}}</a>        </div>', {});
            _billboards_map_ = t, t.behaviors.disable("scrollZoom"),
                $.each(billboards_json.items, function(a, i) {
                    var s = "";
                    if (i.reserved) {
                        var n = "Зарезервирован до ";
                        s = i.reserved
                    } else if (i.available) {
                        var n = "Доступно через ";
                        s = i.available + jsTils(i.available, [" день", " дня", " дней"])
                    } else var n = "Доступен";
                    var l = new ymaps.Placemark(i.position, {
                        type: i.type,
                        address: i.address,
                        reserved: n,
                        strong: s,
                        price: triads(i.price),
                        photo: i.photo,
                        id: i.id,
                        btn_type: "Заказать",
                        ordered: ""
                    }, {
                        balloonContentLayout: r,
                        balloonPanelMaxMapArea: 0,
                        balloonMaxWidth: 500,
                        iconLayout: "default#image",
                        iconImageHref: o[i.type],
                        iconImageSize: [53, 65],
                        iconImageOffset: [-26, -65]
                    });
                    l.events.add("balloonopen", function() {}), _mapMarkers_.push({
                        id: i.id,
                        position: i.position,
                        marker: l
                    }), t.geoObjects.add(l), e()
                })
        });
        var s = $(".tabs-btn .selected");
        if ("undefined" != typeof billboards_json) {
            var n = ".billboards #list-view .order a, .billboard-mark .order";
            $(document).on("click", n, function(r) {
                var a = $(this).closest("tr").attr("data-id") || $(this).attr("data-id");
                if (localstorageGet("billboards_ids"))
                    var o = localstorageGet("billboards_ids");
                else
                    var o = [];
                if ($(this).is(".ordered") || $(this).closest("tr").is(".ordered")) {
                    var o = localstorageGet("billboards_ids");
                    o.splice(o.indexOf(a), 1)
                } else -1 == o.indexOf(a) && o.push(a);
                localstorageSet("billboards_ids", o), r.preventDefault(), t(), e()
            }), t(), e()
        }
        $(".billboards #list-view .price .numbers").each(function() {
            var e = $(this).text();
            $(this).text(triads(e))
        }), r(), $(document).on("click", "#request-form .selected-billboards .unit .close", function(e) {
            var t = $(this).closest(".unit").attr("data-id"),
                r = localstorageGet("billboards_ids");
            r.splice(r.indexOf(t), 1);
            var o = $(this);
            localstorageSet("billboards_ids", r, function() {
                o.closest(".unit").fadeOut(300, function() {
                    0 == r.length && a()
                })
            }), e.preventDefault()
        }), a(), $("#request-form").validate({
            rules: {
                org: "required",
                phone: "required"
            },
            messages: {
                org: "Обязательное поле",
                phone: "Обязательное поле"
            },
            submitHandler: function(e) {
                var t = localstorageGet("billboards_ids");
                return t.length > 0 ? ($.ajax({
                    type: $(e).attr("method"),
                    url: $(e).attr("action"),
                    dataType: "json",
                    data: $(e).serialize() + "&" + $.param({
                        billboards: t
                    })
                }).done(function(e) {
                    jsonResponse = e, 1 == jsonResponse.status ? ($("#request-form .wrapper").slideUp(), $("#request-form .final").slideDown(), t = [], localstorageSet("billboards_ids", t)) : alert("Произошёл сбой. Пожалуйста попробуйте ещё раз.")
                }).fail(function() {
                    alert("Произошёл сбой. Пожалуйста попробуйте ещё раз.")
                }), $("#request-form button").prop("disabled", !0)) : $("#request-form .selected-billboards .title").css({
                    color: "red"
                }), 0 == $(".selected-billboards").size() && ($.ajax({
                    type: $(e).attr("method"),
                    url: $(e).attr("action"),
                    dataType: "json",
                    data: $(e).serialize()
                }).done(function(e) {
                    jsonResponse = e, 1 == jsonResponse.status ? ($("#request-form .wrapper").slideUp(), $("#request-form .final").slideDown()) : alert("Произошёл сбой. Пожалуйста попробуйте ещё раз.")
                }).fail(function() {
                    alert("Произошёл сбой. Пожалуйста попробуйте ещё раз.")
                }), $("#request-form button").prop("disabled", !0)), !1
            },
            invalidHandler: function() {
                var e = localstorageGet("billboards_ids");
                e.length <= 0 && $("#request-form .selected-billboards .title").css({
                    color: "red"
                })
            }
        }), $("body.billboards #list-view td.photo a.address").click(function(e) {
            e.preventDefault();
            var t = $(this).closest("tr").attr("data-id");
            $(".tabs-btn .map-view").click(), setTimeout(function() {
                _mapMarkers_.forEach(function(e) {
                    e.id == t && (_billboards_map_.setZoom(18), _billboards_map_.setCenter(e.position), e.marker.balloon.open())
                })
            }, 500)
        })
    }), $(function() {
        function e(e, t) {
            t = t || function() {};
            var r = e.magnificPopup({
                type: "image",
                removalDelay: 500,
                callbacks: {
                    beforeOpen: function() {
                        this.st.image.markup = this.st.image.markup.replace("mfp-figure", "mfp-figure mfp-with-anim"), this.st.mainClass = "mfp-move-from-top"
                    },
                    close: function() {
                        t()
                    }
                },
                closeOnContentClick: !0,
                showCloseBtn: !1,
                tLoading: "Загрузка..."
            });
            return r
        }
        e($("#list-view td.photo a.photo")), $(document).on("click", ".billboard-mark .photo", function(t) {
            t.preventDefault(), e($(this)).magnificPopup("open")
        }), $(".content-wrapper .photos").magnificPopup({
            delegate: "a",
            type: "image",
            gallery: {
                enabled: !0,
                tPrev: "Предыдущая (Стрелка влево)",
                tNext: "Следующая (Стрелка вправо)",
                tCounter: '<span class="mfp-counter">%curr% из %total%</span>'
            },
            callbacks: {
                beforeOpen: function() {
                    this.st.image.markup = this.st.image.markup.replace("mfp-figure", "mfp-figure mfp-with-anim"), this.st.mainClass = "mfp-move-from-top"
                }
            },
            image: {
                titleSrc: "title"
            }
        })
    }), $(function() {
        ymaps.ready(function() {
            var e = new ymaps.Map($("body.index .small-map, body.contacts .map")[0], {
                    center: [47.24470432, 39.72322986],
                    zoom: 18
                }),
                t = new ymaps.Placemark([47.24470432, 39.72322986], {}, {
                    iconLayout: "default#image",
                    iconImageHref: tribuna_theme_path_ + "/images/ico-marker-mark.png",
                    iconImageSize: [50, 73],
                    iconImageOffset: [-25, -73]
                });
            e.geoObjects.add(t), e.controls.remove("mapTools"), e.controls.remove("scaleLine"), e.controls.remove("searchControl"), e.controls.remove("trafficControl")
        })
    }),
    $(function() {
        $(".contacts-form").validate({
            rules: {
                name: "required",
                phone: "required",
                content: "required"
            },
            messages: {
                name: "Обязательное поле",
                phone: "Обязательное поле",
                content: "Обязательное поле"
            },
            submitHandler: function(e) {
                return $.ajax({
                    type: $(e).attr("method"),
                    url: $(e).attr("action"),
                    data: $(e).serialize()
                }).done(function() {
                    $(".contacts-form .wrapper").slideUp(),
                        $(".contacts-form .final").slideDown()
                }), !1
            }
        })
    });
и я это дело переношу
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
24.06.2016, 16:04
в любом случае, вот чуть более читабельный код
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
function arrayObjectIndexOf(e, t, r) {
    for (var a = 0, o = e.length; o > a; a++)
        if (e[a][r] === t) return a;
    return -1
}
 
function triads(e) {
    return e = e.toString(), e.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, "$1 ")
}
 
function jsTils(e, t) {
    var r;
    return count = e % 100, count >= 5 && count <= 20 ? r = t[2] : (count %= 10, r = 1 == count ? t[0] : count >= 2 && count <= 4 ? t[1] : t[2]), r
}
 
function localstorageGet(e) {
    return Modernizr.localstorage ? lscache.get(e) ? lscache.get(e) : (localStorage.clear(), !1) : void 0
}
 
function localstorageSet(e, t, r) {
    Modernizr.localstorage && lscache.set(e, JSON.stringify(t), 1440), (r = r || function() {})()
}
$(function() {
    function e(e) {
        a.slideUp(300), a.eq(e).slideDown(300, function() {
            _billboards_map_ && _billboards_map_.container.fitToViewport()
        })
    }
 
    function t() {
        $activeBtn = r.filter(".active"), index = r.index($activeBtn), e(index)
    }
    var r = $(".tabs-btn>a.tab-btn"),
        a = $(".tabs>.tab");
    t(), r.click(function(e) {
        e.preventDefault(), $(this).is(".active") || (r.removeClass("active"), $(this).addClass("active"), _mapMarkers_.forEach(function(e) {
                e.marker.balloon.close()
            }),
            t())
    })
});
var _mapMarkers_ = [],
    _billboards_map_;
$(function() {
        function e() {
            var e = localstorageGet("billboards_ids");
            $(".billboards #list-view tr").removeClass("ordered"),
                _mapMarkers_.forEach(function(e) {
                    var t = e.marker.properties.get("type");
                    e.marker.properties.set("btn_type", "Заказать"),
                        e.marker.properties.set("ordered", ""),
                        e.marker.options.set("iconImageHref", o[t])
                }),
                e && e.forEach(function(e) {
                    $(".billboards #list-view tr[data-id=" + e + "]").addClass("ordered"),
                        _mapMarkers_.forEach(function(t) {
                            if (e == t.id) {
                                var r = t.marker.properties.get("type");
                                t.marker.properties.set("btn_type", "Отменить"),
                                    t.marker.properties.set("ordered", "ordered"),
                                    t.marker.options.set("iconImageHref", i[r])
                            }
                        })
                })
        }
 
        function t() {
            var e = localstorageGet("billboards_ids"),
                t = 0,
                r = 0;
            if (e) {
                e.forEach(function(e) {
                    billboards_json.items.forEach(function(a) {
                        e == a.id && (t += 1, r += a.price)
                    })
                });
                var a = jsTils(t, ["Выбран ", "Выбрано ", "Выбрано "]) + t + jsTils(t, [" щит", " щита", " щитов"]);
                r = triads(r), s.find(".count").text(a), s.find(".numbers").text(r + " рублей."), 0 == t ? s.hide() : s.show()
            } else s.hide()
        }
 
        function r() {
            "undefined" != typeof billboards_json && localstorageSet("billboards_json", billboards_json.items)
        }
 
        function a() {
            if ($("#request-form .selected-billboards").size()) {
                var e = localstorageGet("billboards_ids"),
                    t = localstorageGet("billboards_json");
                if (e && t && e.length > 0) {
                    var r = [];
                    e.forEach(function(e) {
                            t.forEach(function(t) {
                                e == t.id ? $('<div class="unit" data-id="' + t.id + '">' + t.address + '<a href="" class="close"></a></div>').prependTo("#request-form .selected-billboards .list") : r.push(e)
                            })
                        }),
                        r.forEach(function(t) {
                            e.splice(e.indexOf(t), 1)
                        })
                } else
                    $("#request-form .selected-billboards .title").text("Вы не выбрали ни одного щита."),
                    $("#request-form .selected-billboards .more a").text("Добавить щит")
            }
        }
        var o = {
                yellow: tribuna_theme_path_ + "/images/ico-marker_yellow.png",
                green: tribuna_theme_path_ + "/images/ico-marker_green.png",
                red: tribuna_theme_path_ + "/images/ico-marker_red.png"
            },
            i = {
                yellow: tribuna_theme_path_ + "/images/ico-marker_yellow_ordered.png",
                green: tribuna_theme_path_ + "/images/ico-marker_green_ordered.png",
                red: tribuna_theme_path_ + "/images/ico-marker_red_ordered.png"
            };
        "undefined" != typeof billboards_json && ymaps.ready(function() {
            var t = new ymaps.Map("billboard-map", {
                    center: billboards_json.center,
                    zoom: billboards_json.zoom
                }),
                r = ymaps.templateLayoutFactory.createClass('<div class="billboard-mark">          <div class="mark {{properties.type}}"></div><div class="address">{{properties.address}}</div>          <div class="info">            <span class="reserved">{{properties.reserved}}<strong>{{properties.strong}}</strong>,<br>            <strong>{{properties.price}} руб.</strong></div>          <a href="{{properties.photo}}" class="photo">Фото</a><br>          <a href="" data-id="{{properties.id}}" class="order {{properties.ordered}}">{{properties.btn_type}}</a>        </div>', {});
            _billboards_map_ = t, t.behaviors.disable("scrollZoom"),
                $.each(billboards_json.items, function(a, i) {
                    var s = "";
                    if (i.reserved) {
                        var n = "Зарезервирован до ";
                        s = i.reserved
                    } else if (i.available) {
                        var n = "Доступно через ";
                        s = i.available + jsTils(i.available, [" день", " дня", " дней"])
                    } else var n = "Доступен";
                    var l = new ymaps.Placemark(i.position, {
                        type: i.type,
                        address: i.address,
                        reserved: n,
                        strong: s,
                        price: triads(i.price),
                        photo: i.photo,
                        id: i.id,
                        btn_type: "Заказать",
                        ordered: ""
                    }, {
                        balloonContentLayout: r,
                        balloonPanelMaxMapArea: 0,
                        balloonMaxWidth: 500,
                        iconLayout: "default#image",
                        iconImageHref: o[i.type],
                        iconImageSize: [53, 65],
                        iconImageOffset: [-26, -65]
                    });
                    l.events.add("balloonopen", function() {}), _mapMarkers_.push({
                        id: i.id,
                        position: i.position,
                        marker: l
                    }), t.geoObjects.add(l), e()
                })
        });
        var s = $(".tabs-btn .selected");
        if ("undefined" != typeof billboards_json) {
            var n = ".billboards #list-view .order a, .billboard-mark .order";
            $(document).on("click", n, function(r) {
                var a = $(this).closest("tr").attr("data-id") || $(this).attr("data-id");
                if (localstorageGet("billboards_ids"))
                    var o = localstorageGet("billboards_ids");
                else
                    var o = [];
                if ($(this).is(".ordered") || $(this).closest("tr").is(".ordered")) {
                    var o = localstorageGet("billboards_ids");
                    o.splice(o.indexOf(a), 1)
                } else -1 == o.indexOf(a) && o.push(a);
                localstorageSet("billboards_ids", o), r.preventDefault(), t(), e()
            }), t(), e()
        }
        $(".billboards #list-view .price .numbers").each(function() {
            var e = $(this).text();
            $(this).text(triads(e))
        }), r(), $(document).on("click", "#request-form .selected-billboards .unit .close", function(e) {
            var t = $(this).closest(".unit").attr("data-id"),
                r = localstorageGet("billboards_ids");
            r.splice(r.indexOf(t), 1);
            var o = $(this);
            localstorageSet("billboards_ids", r, function() {
                o.closest(".unit").fadeOut(300, function() {
                    0 == r.length && a()
                })
            }), e.preventDefault()
        }), a(), $("#request-form").validate({
            rules: {
                org: "required",
                phone: "required"
            },
            messages: {
                org: "Обязательное поле",
                phone: "Обязательное поле"
            },
            submitHandler: function(e) {
                var t = localstorageGet("billboards_ids");
                return t.length > 0 ? ($.ajax({
                    type: $(e).attr("method"),
                    url: $(e).attr("action"),
                    dataType: "json",
                    data: $(e).serialize() + "&" + $.param({
                        billboards: t
                    })
                }).done(function(e) {
                    jsonResponse = e, 1 == jsonResponse.status ? ($("#request-form .wrapper").slideUp(), $("#request-form .final").slideDown(), t = [], localstorageSet("billboards_ids", t)) : alert("Произошёл сбой. Пожалуйста попробуйте ещё раз.")
                }).fail(function() {
                    alert("Произошёл сбой. Пожалуйста попробуйте ещё раз.")
                }), $("#request-form button").prop("disabled", !0)) : $("#request-form .selected-billboards .title").css({
                    color: "red"
                }), 0 == $(".selected-billboards").size() && ($.ajax({
                    type: $(e).attr("method"),
                    url: $(e).attr("action"),
                    dataType: "json",
                    data: $(e).serialize()
                }).done(function(e) {
                    jsonResponse = e, 1 == jsonResponse.status ? ($("#request-form .wrapper").slideUp(), $("#request-form .final").slideDown()) : alert("Произошёл сбой. Пожалуйста попробуйте ещё раз.")
                }).fail(function() {
                    alert("Произошёл сбой. Пожалуйста попробуйте ещё раз.")
                }), $("#request-form button").prop("disabled", !0)), !1
            },
            invalidHandler: function() {
                var e = localstorageGet("billboards_ids");
                e.length <= 0 && $("#request-form .selected-billboards .title").css({
                    color: "red"
                })
            }
        }), $("body.billboards #list-view td.photo a.address").click(function(e) {
            e.preventDefault();
            var t = $(this).closest("tr").attr("data-id");
            $(".tabs-btn .map-view").click(), setTimeout(function() {
                _mapMarkers_.forEach(function(e) {
                    e.id == t && (_billboards_map_.setZoom(18), _billboards_map_.setCenter(e.position), e.marker.balloon.open())
                })
            }, 500)
        })
    }), $(function() {
        function e(e, t) {
            t = t || function() {};
            var r = e.magnificPopup({
                type: "image",
                removalDelay: 500,
                callbacks: {
                    beforeOpen: function() {
                        this.st.image.markup = this.st.image.markup.replace("mfp-figure", "mfp-figure mfp-with-anim"), this.st.mainClass = "mfp-move-from-top"
                    },
                    close: function() {
                        t()
                    }
                },
                closeOnContentClick: !0,
                showCloseBtn: !1,
                tLoading: "Загрузка..."
            });
            return r
        }
        e($("#list-view td.photo a.photo")), $(document).on("click", ".billboard-mark .photo", function(t) {
            t.preventDefault(), e($(this)).magnificPopup("open")
        }), $(".content-wrapper .photos").magnificPopup({
            delegate: "a",
            type: "image",
            gallery: {
                enabled: !0,
                tPrev: "Предыдущая (Стрелка влево)",
                tNext: "Следующая (Стрелка вправо)",
                tCounter: '<span class="mfp-counter">%curr% из %total%</span>'
            },
            callbacks: {
                beforeOpen: function() {
                    this.st.image.markup = this.st.image.markup.replace("mfp-figure", "mfp-figure mfp-with-anim"), this.st.mainClass = "mfp-move-from-top"
                }
            },
            image: {
                titleSrc: "title"
            }
        })
    }), $(function() {
        ymaps.ready(function() {
            var e = new ymaps.Map($("body.index .small-map, body.contacts .map")[0], {
                    center: [47.24470432, 39.72322986],
                    zoom: 18
                }),
                t = new ymaps.Placemark([47.24470432, 39.72322986], {}, {
                    iconLayout: "default#image",
                    iconImageHref: tribuna_theme_path_ + "/images/ico-marker-mark.png",
                    iconImageSize: [50, 73],
                    iconImageOffset: [-25, -73]
                });
            e.geoObjects.add(t), e.controls.remove("mapTools"), e.controls.remove("scaleLine"), e.controls.remove("searchControl"), e.controls.remove("trafficControl")
        })
    }),
    $(function() {
        $(".contacts-form").validate({
            rules: {
                name: "required",
                phone: "required",
                content: "required"
            },
            messages: {
                name: "Обязательное поле",
                phone: "Обязательное поле",
                content: "Обязательное поле"
            },
            submitHandler: function(e) {
                return $.ajax({
                    type: $(e).attr("method"),
                    url: $(e).attr("action"),
                    data: $(e).serialize()
                }).done(function() {
                    $(".contacts-form .wrapper").slideUp(),
                        $(".contacts-form .final").slideDown()
                }), !1
            }
        })
    });
и я это дело переношу
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
24.06.2016, 16:07
но скажу вам точно, там очень много фигни, которая как бы и работает, но на самом деле такое читать невозможно и делалось явно для того, чтобы просто отстали
0
 Аватар для vnmslf
25 / 25 / 5
Регистрация: 13.03.2015
Сообщений: 215
24.06.2016, 16:10  [ТС]
Цитата Сообщение от BANO Посмотреть сообщение
в любом случае, вот чуть более читабельный код
Спасибо.
Цитата Сообщение от BANO Посмотреть сообщение
и я это дело переношу
Спасибо!
Цитата Сообщение от BANO Посмотреть сообщение
но скажу вам точно, там очень много фигни, которая как бы и работает, но на самом деле такое читать невозможно и делалось явно для того, чтобы просто отстали
Знаю... Эти "профессионалы" больно крутой вид себе создали и кричат на каждом углу, что самые крутые, чтобы продавать свои полуготовые решения за большую сумму денег. В общем, суть не в этом. Таких как они... на каждом углу...
И да, это не первый случай, когда этот разработчик делает такую.. лажу. Уже был у меня с ними такой же случай, где внутри их сайта лежал еще один (забыли убрать с предыдущего заказа).

Думаю, что если покопать в этом всем.. сброде.. можно и найти "корень" зла. Попробую поразбираться)))))
0
24.06.2016, 16:17

Не по теме:

я тоже раньше вместо false писал !1, пока мне не "объяснили" что так делать не хорошо
так же и undefined заменял на void 0

0
 Аватар для vnmslf
25 / 25 / 5
Регистрация: 13.03.2015
Сообщений: 215
29.06.2016, 09:58  [ТС]
Все решилось. Проблема была в localStorage, одну из функций пришлось вынести кое-куда и все.. всем спасибо, что откликнулись
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.06.2016, 09:58
Помогаю со студенческими работами здесь

Исправление готовой работы
Имеется готовая рабочая программа. Нужно ее переделать по таким критериям: 1) чтобы были классы и объекты. 2) сделать выбор размера поля...

Скорость работы скрипта
Здравствуйте! Вопрос на примере google maps api, мне нужно знать какой вариант быстрее работает и обрабатывается браузером. Вариант...

Порядок работы скрипта
Всем привет! Может я конечно задаю глупый вопрос. Но хочу для себя еще раз убедиться вот в чем: После отправки данных из формы в...

Принцип работы скрипта
Помогите описать принцип работы скрипта, в какой момент и что он делает $source=&quot;D:\Photos&quot; Get-ChildItem $source...

Описание работы скрипта
Здравствуйте. Есть идея создания онлайн-стратегии. Чисто ради тренировок умений. Суть вопроса заключается вот в чем. Например...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru