У меня есть две функции внутри моей основной функции. Как вы увидите, единственное различие между ними - посередине с тем, как они добавляют/редактируют html. Я думаю, было бы неплохо придумать две новые функции: ту, которая делает первую половину, а вторую - вторую половину. Я не уверен, что это возможно с помощью jQuery или даже с JavaScript, поскольку я не знаю, как назвать эти новые функции внутри этих функций, если это имеет смысл. Любая помощь/руководство будет замечательным!jQuery Рефакторинг - DRY
Вот первые один
$('#save').click(function(){
var title = $('#title').val();
var tags = $('#tags').val();
var notes = $('#notes').val();
var myDate = new Date();
if (title.length < 1) {
$('.title-warn').show();
}
if (tags.length < 1) {
$('.tags-warn').show();
}
if (notes.length < 1) {
$('.notes-warn').show();
}
if (title.length >= 1 && tags.length >= 1 && notes.length >= 1) {
$allNotes.prepend('<li class="note"><div><h1>' + title + '</h1><div class="date"> <h2>'+ myDate.toDateString() +'</h2><span class="btn btn-edit">Edit</span></div><h3>' + tags + '</h3><p>' + notes + '</p></div></li>');
$allNotes.show();
$newNote.hide();
$('.title-warn').hide();
$('.tags-warn').hide();
$('.notes-warn').hide();
}
$('#title').val('');
$('#tags').val('');
$('#notes').val('');
$('#search').prop('disabled', false);
$('#search').attr("placeholder", "Search by title, tags, date, or even words/sentences in notes");
$('.btn-search').prop('disabled', false);
});
А теперь второй один
$('#edit').click(function(){
var title = $('#edit-title').val();
var tags = $('#edit-tags').val();
var notes = $('#edit-notes').val();
var myDate = new Date();
if (title.length < 1) {
$('.title-warn').show();
}
if (tags.length < 1) {
$('.tags-warn').show();
}
if (notes.length < 1) {
$('.notes-warn').show();
}
if (title.length >= 1 && tags.length >= 1 && notes.length >= 1) {
$('.edited-note').html('<div><h1>' + title + '</h1><div class="date"> <h2>'+ myDate.toDateString() +'</h2><span class="btn btn-edit">Edit</span></div><h3>' + tags + '</h3><p>' + notes + '</p></div>');
$('.allnotes').show();
$('.edit-note').hide();
$('.title-warn').hide();
$('.tags-warn').hide();
$('.notes-warn').hide();
}
$('#title').val('');
$('#tags').val('');
$('#notes').val('');
$('#search').prop('disabled', false);
$('#search').attr("placeholder", "Search by title, tags, date, or even words/sentences in notes");
$('.btn-search').prop('disabled', false);
$('.edited-note').removeClass('edited-note');
});
И, конечно, если у кого есть какие-либо предложения по любым другим аспектам моего кода, я являюсь для критики!
Уточняете, что вы подразумеваете под второй половиной? Также при выполнении одного и того же действия на нескольких селекторах вы можете сохранять ресурсы и вводить их, выбирая их все сразу: '$ ('. Title-warn, .tags-warn, .notes-warn'). Hide();' just a маленький трюк, который вы можете реализовать, если вы чувствуете приключения. ;) – CalebB
Я просто имел в виду часть после того, где я добавлял/редактировал html. Я обязательно включу трюк, хотя, спасибо! –