過去 7 時間、これを機能させようとしてきたので、わずかなフラストレーションのトーンを許してください。
私は、ajax 経由でコンテンツをロードする jquery ui タブの素晴らしいセットを正常に実装しました。
ajax 経由で読み込まれたコンテンツには、フォームがあります。タブがロードされたときに、フォームの最初のフィールド (#title の ID を持つ) が自動的にフォーカスされるようにしたかったのです。スクリプトを外部ドキュメントに入れようとしたときにこれがうまくいかなかったので、コールバックが良い考えだと思いました。
setTimeout( function() { $("#title").focus(); }, 500 );
私はここからこのアイデアを得ました。遅延は、各タブをクリックしたときにフィールドが適切にフォーカスされないという問題が発生したためです。最初はこれで問題の一部が解決したと思っていましたが、さらにテストを重ねた結果、このフォーカス フィールドは最初に読み込まれたタブでのみ機能することがわかりました。
頭をすっきりさせて、素敵な jquery オートコンプリート テキスト フィールドを実装することにしました。
このスクリプトは、外部コンテンツに直接ロードすると機能するように見えましたが、残念なことに、さらにテストしたところ、そうではないことがわかりました。オートコンプリート フィールドは、ページの読み込み時に読み込まれるタブでのみ機能します。
これは、両方のスクリプトが最初に読み込まれたタブでのみ機能するというパターンに気付いたときです。
select、load、および show イベントを使用してみましたが、すべて機能しません。
各タブがクリックされるとアラートが表示されるため、コールバックが機能していることがわかります。
明らかに、私は何か非常に間違ったことをしています。
私のコードをバラバラにして、私が間違っていることを教えてください。
<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>