В настоящее время существует два способа его реализации. Один с большим, другой с меньшим усилием. Но меньшие усилия означают и меньший контроль — другими словами, jQuery Steps обрабатывает отображение и скрытие сообщения о загрузке и, конечно же, самого асинхронного вызова. В любом случае, первое решение (меньше усилий) требует, чтобы вы добавили асинхронный шаг по умолчанию при инициализации, как вы привыкли.
<div id="wizard">
<h1>Choose</h1>
<div>
<select id="choose">
<option value="0" selected="selected">default</option>
<option value="1">extraordinary</option>
</select>
</div>
<h1>Result 1</h1>
<div data-mode="async" data-url="/rest/service/0"></div>
</div>
Затем добавьте небольшую часть кода к событию onStepChanging, например упомянутому melc. Этот код должен анализировать данные предыдущего шага и при необходимости удалять асинхронный шаг по умолчанию и добавлять новый в том же месте, но с другим URL.
<script>
$(function()
{
var wizard = $("#wizard").steps({
onStepChanging: function(event, currentIndex, newIndex)
{
if (currentIndex === 0)
{
if ($("#choose > option:selected").val() === "1")
{
wizard.steps("remove", 1);
// In this case you could also use add instead of insert
wizard.steps("insert", 1, {
title: "Result 2",
contentMode: "async",
contentUrl: "/rest/service/1"
});
}
}
return true;
}
});
});
</script>
Другое решение уже описано melc.
person
Rafael Staib
schedule
19.10.2013