Обратите внимание на две строки ниже, которые я добавил (с комментариями). Вам нужно уничтожить, а затем воссоздать аккордеон.
$('#valitsija').click(function() {
$.get('http://www.equstom.fi/kurssit.xml', function(data) {
//you need to destroy the accordion first
$('#accordion').accordion("destroy");
$('#accordion').empty();
$(data).find('Kurssi').each(function() {
var $kurssi = $(this);
var html = '<div>';
html += '<h3><a href="#">' + $kurssi.find('KurssinNimi').text() + '</a></h3>';
html += '<div>' + $kurssi.find('KurssiKuvaus').text() + '</div>';
html += '</div>';
$('#accordion').append($(html));
});
//you need to re-make the accordion
$("#accordion").accordion({ header: "h3" });
});
});
Я бы предложил сохранить #accordion в переменной, чтобы вам не приходилось его искать. Это называется кешированием. (Я знаю, что это не ваш вопрос, но решил, что я все равно предложу это предложение). Примерно так:
$('#valitsija').click(function() {
$.get('http://www.equstom.fi/kurssit.xml', function(data) {
var acc = $('#accordion');
//you need to destroy the accordion first
acc.accordion("destroy");
acc.empty();
$(data).find('Kurssi').each(function() {
var $kurssi = $(this);
var html = '<div>';
html += '<h3><a href="#">' + $kurssi.find('KurssinNimi').text() + '</a></h3>';
html += '<div>' + $kurssi.find('KurssiKuvaus').text() + '</div>';
html += '</div>';
acc.append($(html));
});
//you need to re-make the accordion
acc.accordion({ header: "h3" });
});
});
Доказательство того, что это работает