You can use functions 'onNext', 'onPrev', 'onFinish', 'onSlideChanged'. With help of these functions you will have control over transitions and you can return false to interrupt transition (except function 'onSlideChanged'). If you want, you can catch event with jQuery and interrupt transition with help of function 'preventDefault'. There is little difference between function onNext/onPrev and sf-step-before, because if somebody clicks on step via navigation, then function onNext/onPrev will be executed on each step between actual and destination step while sf-step-before will be executed only once.
$(document).ready(function () { $("#wizard_example").stepFormWizard({ onNext: function() { $('#events').append($('<div>').text('onNext')); //return false; }, onPrev: function() { $('#events').append($('<div>').text('onPrev')); //return false; }, onFinish: function() { $('#events').append($('<div>').text('onFinish')); return false; }, onSlideChanged: function() { $('#events').append($('<div>').text('onSlideChanged')); } }); $('#wizard_example').on('sf-step-before', function(e, from, to) { $('#events').append($('<div>').text('sf-step-before')); //e.preventDefault() }); $('#wizard_example').on('sf-finish', function(e) { $('#events').append($('<div>').text('sf-finish')); //e.preventDefault() }); $('#wizard_example').on('sf-step-after', function(e) { $('#events').append($('<div>').text('sf-step-after')); }); })