Mam kilka elementów na stronie, których eventy przechwytuję, żeby za pomocą AJAXa je obsłużyć. Jeden z tych elementów to formularz dodawania tagów. kod JS wygląda następująco:
$(".add_tag").bind('submit', function(e) { e.preventDefault(); $.post( $(this).attr('action'), function(data){ //obsługa tego co wróci z kontrolera if(data){ var strTags = new String(data); var tagButtons, id, name; for (i = 0;i < arrTags.length;i++){ id = 'jakies id'; name = 'coś'; tagButtons = '<a href="#">'+arrTags[i]+'</a> <a class="del" href="#" id="' + id + '" name="' + name + '">x</a>'; $('#taglist_' + photo).children('div').append(tagButtons); } } } ); });
Jak widać po dodaniu tagów (oddzielonych przecinkami) dane wysyłane są metodą post do odpowiedniego skryptu, tam dodane są do bazy a następnie funkcja dopisuje do istniejącej listy tagów nowe linki do tagu i do kasowania tagu (x);
Link do kasowania tagu też jest obsługiwany za pomocą skryptu jQuery, jednak jest to możliwe dopiero po przeładowaniu strony. Dodam, że nie ma błędów w definicji tych linków i są one takie same jak te wczytane wcześniej przy ładowaniu strony. W firebugu mam informację, że do tych dodanych za pomocą jQuery nie są przypisane żadne eventy. Czego tu brakuje?