В настоящее время я создал кусок кода Javascript, который проверяет HTTP-ответ, и если его успешный код 200 показывает, что светофор показывает зеленый цвет, и если его не 200-й код светофора мигает красным.Пропустить новый аргумент в коде Javascript для целевого HTML5 attr
Моя текущая проблема на данный момент я хочу, чтобы иметь возможность передать Два аргументов функции инициализации, как так
requestResponses.init('/status', "ATTR");
Первый атрибутом является URL я хочу проверить против и второго атрибута являющийся значением HTML5 data-request атрибут, который я создал.
Моя причина для этого, так как я хочу иметь несколько светофоров на одной странице, нацеленных на разные URL одновременно, не влияя друг на друга.
Таким образом, для примера я создаю атрибут запроса данных и дать ему значение Четыре я тогда хочу, чтобы иметь возможность подключить его как так
requestResponses.init('/status', "Four");
и начать ориентации элементов, как показано ниже в коде , Это делает его более компактным и многоразовым.
.cp_trafficLight[data-request="Four"]
Пожалуйста, найдите мой код и рабочий JSFiddle.
var requestResponses = {
greenLight: $('.cp_trafficLight_Light--greenDimmed'),
redLight: $('.cp_trafficLight_Light--redDimmed'),
greenBright: 'cp_trafficLight_Light--greenBright',
redBright: 'cp_trafficLight_Light--redBright',
settings: {
flashError: 400,
requestTime: 10000
},
init: function (url, targAttr) {
requestResponses.url = url;
requestResponses.getResponse(requestResponses.url, targAttr);
setInterval(function() {
if (requestResponses.errorCode === true) {
requestResponses.redLight.toggleClass(requestResponses.redBright);
}
}, requestResponses.settings.flashError);
},
successResponse: function (targAttr) {
requestResponses.errorCode = false;
requestResponses.redLight.removeClass(requestResponses.redBright);
requestResponses.greenLight.addClass(requestResponses.greenBright);
console.log(targAttr);
},
errorResponse: function (targAttr) {
requestResponses.greenLight.removeClass(requestResponses.greenBright);
},
getResponse: function (serverURL, targAttr) {
$.ajax(serverURL, {
success: function() {
requestResponses.errorCode = false;
requestResponses.successResponse(targAttr);
},
error: function() {
requestResponses.errorCode = true;
requestResponses.errorResponse(targAttr);
},
complete: function() {
setTimeout(function() {
requestResponses.getResponse(requestResponses.url);
}, requestResponses.settings.requestTime);
}
});
},
errorCode: false
}
requestResponses.init('/status', "TEST");
https://jsfiddle.net/8700h582/
Цените любую помощь!
Я получаю это, но моя проблема заключается в том, что этот параметр не поддается другой функции? – Rebecca
@Rebecca Я не понимаю, что вы имеете в виду. Вы имеете в виду вызов foo в рамках другой функции? – Darkrum
, поэтому я хочу, чтобы этот аргумент передавался в метод «errorResponse» и «successResponse», поэтому я могу начать манипулировать dom. Каждый атрибут будет уникальным для каждого светофора. – Rebecca