Используйте пустое событие при создании аккордеона, что позволит вам управлять событием щелчка аккордеона с помощью функции jQuery .click.Затем вы можете обработать окно подтверждения и позволить событию щелчка по аккордеону выполняться только в случае подтверждения.
$(document).ready(function()
{
var edited = false,
accordion_me = $('.accordion-me');
// activate the accordion, but with an empty event
accordion_me.accordion({
autoHeight: false,
navigation: true,
event: ''
});
// here's the new accordion event
$('.accordion-me h3').click(function()
{
// find the index of the event being called
var i = $('.accordion-me h3').index(this);
// if we have unsaved changes and do not confirm, stop accordion execution
if (edited && !confirm('You have unsaved changes. Do you want to navigate away?'))
{
return false;
}
// continue with the accordion execution. Activate the requested event index.
accordion_me.accordion('activate', i);
return false;
});
});
Если ваш аккордеон разборный (как и мой), ваш аккордеон все равно будет работать так же, как и раньше.Кроме того, если у вас есть только один аккордеон, я бы порекомендовал использовать id для его вызова вместо класса .accordion-me, что сэкономит некоторые накладные расходы.Если вам все еще нужно использовать класс для его вызова, поместите перед ним тег html, т.е. div.accordion-me.