10 ноября 2013
2995
динамические метки, frontend

Динамические метки FrontEnd

JavaScript
Демонстрация » Скачать »

Здравствуйте! Данный урок первый из двух, которые будут посвящены созданию динамическим меткам. В первом уроке речь будет идти о части FrontEnd. Итак, для реализации используем следующую html структуру:

 

<ul class="tags">
<li class="tag-new">
     <input maxlength="25" class="tag-input">
</li>
</ul>

 

 

Помимо этого, в список будут добавляться пункты в формате:

 

<li class="tag">
<span>текст</span>
<a><span></span></a>
</li>

 

 

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

Ниже представлен скрипт, который содержит функцию добавления в список и несколько событий при которых эта функция будет вызвана.

 

function add(element)
{
         var newTag = $(element).val();
         if(newTag.length > 0)
         {
                  $(element).val('');
                  $(element).before('<li class="tag"><span>'
 + newTag + '</span><a><span></span></a></li>');
         }
}

$('.tag-input').on('blur', function(event){
                   add(this);
});

$('.tag-input').keypress(function(event){

         if(event.which == 44)
         {
                  event.preventDefault();
                  add(this);
         }

});

 

 

Удалить тег из списка так же можно несколькими путями: по нажатию на символ «х», который присутствует у каждого элемента, а так же нажатием клавиши backspace начиная с конечного:

 

$('.tag a').on('click', function(event){$(this).parent('li.tag').remove();});
$('.tag-input').on('keydown', function(event){
         if(event.which == 8 && $(this).val() == '')
         {
                  $('li.tag').last().remove();
         }
});

 

 

На этом работа над frontend-ом закончена. Так же в дальнейшем, а именно во второй части динамических меток BackEnd, будут добавлены еще некоторые js скрипты, но их целью будет взаимодействие frontend-а, поэтому они не были рассмотрены в этой части урока.

 

На этом все. Благодарю за внимание!