スライダー内にフォームがあり、スライダーの各セクション内の要素は、switch ステートメントのそれぞれのケースによって制御されます。例えば:
HTML
<ul class="slider">
<li class="slide">
<span class="next">Next</span>
</li>
<li class="slide">
<span class="next">Next</span>
</li>
<li class="slide">
<span class="next">Next</span>
</li>
</ul>
JS
$(function(){
$('.next','.slide').click(function (e) {
e.preventDefault();
var slideIndex = $(this).closest('.slide').index();
switch (slideIndex) {
case 0:
someFunction();
break;
case 1:
anotherFunction();
break;
case 2:
$.ajax({
type: "POST",
url: "http://some.site.com/register.php",
data: 'some data',
success: function (response) {
if (response)
// Call slide();
}
});
break;
default:
return false;
break;
}
slide();
});
問題は、slide()
常にクリック関数の最後に呼び出されることです。そのAJAXリクエストが応答を返した後にのみ関数を呼び出す方法はありますか?
編集
私はおそらく自分自身を十分に明確にしていませんでした。私は ajax 応答を呼び出すことができることを知っていますslide()
が、すべての switch ケースの最後にも呼び出す必要があります。フローは次のようになります。
ユーザーは「次へ」をクリックします。
-> スクリプトは、ユーザーがどのスライドにいるかをチェックします
-> そのスライドのロジックを実行します
->slide()