Я пытался заставить это работать в течение последних 7 часов, поэтому, пожалуйста, извините за небольшой тон разочарования.
Я успешно реализовал замечательный набор вкладок jquery ui, которые загружают их содержимое через ajax.
Контент, загружаемый через ajax, имеет форму. Я хотел, чтобы первое поле в форме (с идентификатором #title) было сфокусировано автоматически при загрузке вкладки. Это не сработало, когда я попытался поместить скрипт во внешний документ, поэтому я подумал, что обратный вызов будет хорошей идеей.
setTimeout( function() { $("#title").focus(); }, 500 );
Я получил эту идею от здесь . Задержка вызвана тем, что у меня были проблемы с полем, которое не фокусировалось должным образом при нажатии на каждую вкладку. Сначала я подумал, что это решило некоторые проблемы, однако после еще большего тестирования я обнаружил, что это поле фокусировки работает только на вкладке, которая была первоначально загружена.
Я решил очистить голову и реализовать текстовое поле nice jquery autocomplete.
Этот скрипт работал, когда загружался прямо во внешний контент, но, к моему ужасу, дальнейшее тестирование показало, что это не так. Поле автозаполнения работает только на вкладке, которая загружается при загрузке страницы.
Это когда я заметил, что оба моих скрипта работают только на начальной загруженной вкладке.
Я пытался использовать события выбора, загрузки и показа, но все они не работают.
Я знаю, что обратный вызов работает, потому что предупреждение появляется при нажатии каждой вкладки.
Очевидно, я делаю что-то очень неправильное.
Пожалуйста, соберите мой код и расскажите, что я делаю не так.
<script type="text/javascript">
$(function() {
$("#tabs").tabs({
load: function(event, ui) { setTimeout( function() { $("#title").focus(); }, 500 );
$("#role").autocomplete(
"/profile/autocomplete",
{
delay:10,
minChars:1,
matchSubset:1,
matchContains:1,
cacheLength:10,
onItemSelect:selectItem,
onFindValue:findValue,
formatItem:formatItem,
autoFill:true
}
);
alert('callback');
}
});
});
</script>