.btn-change-sect {
display: none;
border-bottom: 2px solid #ffffff;
}
.active {
display: block;
border-bottom: 2px solid #ff7300;
}
$( ".btn-change-sect" ).click(function() {
// убираем активный стиль со всех подобных элементов
$( ".btn-change-sect" ).removeClass("active");
// ставим активный стиль текущему элементу
$(this).addClass("active");
});
Второй метод подразумевает, что программист каждый шажок составления алгоритма должен придумывать заранее, чтобы изначально строилось правильное решение.
app.param('userId', (req, res, next) => {
// тут какой-то длинный код
next();
});
app.get('/users/:userId', (req, res) => { ... });
app.get('/users/:userId/info', (req, res) => { ... });
app.post('/users/:userId', (req, res) => { ... });
;(function ($) {
$(".input").bind("paste", function(evt) {
var item = (evt.clipboardData || evt.originalEvent.clipboardData).items[0] || null;
if (item && item.kind === "file" && item.type.indexOf("image") !== -1) {
var file = item.getAsFile(),
data = new FormData();
data.append('file', file);
$.ajax({
url: "/upload",
type: "POST",
data: data,
contentType: false,
processData: false,
success: function (r) {
// ...
}
})
}
})
})(jQuery)
Мне кажется, что всё это дело смотрится, будто бы "на коленке". ...Ещё бывают моменты, когда очень туго идёт с расширением функционала.
There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors.