Jquery UIタブを使い始めました。タブのコンテンツは、最初は静的コンテンツで構成されています。jqueryタブ - 現在のパネルで開いているリンクが機能しません。
ここで、パネル内のコンテンツには、何らかのサブコンテンツへのリンクがあります。したがって、ユーザーがパネル内のリンクをクリックすると、現在のパネルのコンテンツをリンクからのコンテンツに置き換えたいと思います。
私はjquery UIタブのドキュメントから直接スクリプトを使用しましたが、動作させることはできません。パネル内ではなく、リンクを直接開いています。私はテストのために使用したコードは非常に簡単です:
<div id="MyTabs">
<ul>
<li><a href="#TestTab1">TestTab</a></li>
<li><a href="#TestTab2">TestTab</a></li>
</ul>
<div id="TestTab1">
Lorem ipsum dolor. dumm di dumm
<a href="http://mywebserver/somelink">Test</a>
</div>
<div id="TestTab2">
Lorem ipsum dolor. dumm di dumm 2
<a href="http://mywebserver/somelink2">Test 2</a>
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#MyTabs').tabs({
load: function(event, ui) {
$('a', ui.panel).click(function() {
$(ui.panel).load(this.href);
return false;
});
}
});
});
また、私は全く働いているパネル内には、リンクを呼び出していないAJAXを使用してロードされたパネルの内容を持っている場合。
私が間違っていることは何ですか?
ヘルプは本当に
よろしく
はMaik
EDIT1高く評価され:
[OK]を、私はさらに少しを得ました。私は、次のスニペットでJavascriptを置き換え:
$(function() {
$("#MyTabs").tabs();
$("#MyTabs").bind('tabsshow', function(event, ui) {
AddClickHandler(ui);
});
});
function AddClickHandler(ui) {
$('a', ui.panel).click(function() {
MyAlert("AddClickHandler");
$(ui.panel).load(this.href, AddClickHandler(ui));
return false;
});
}
この変更の後、パネル上のすべてのリンクは、現在のパネルの内容を更新します。ここまでは順調ですね。まだ1つの問題が残っています。それ以降のリンクでは動作しません。私はajax呼び出しが終了したときにコールバックの2番目の "AddClickHandler"でそれをしようとしました。簡単なアラートを表示して別の機能を使用すると、パネルの内容が更新されたときに実際に呼び出されます。しかし、私はそのコンテンツの新しいリンクに何かを縛ることはできません。 "$( 'a'、ui.panel)..."は機能しません。このための正しいセレクタは何でしょうか?
ヒント?
よろしく
右全く見doesntのはMaik
を念のために、あなたのスクリプトでjquery.jsファイルが含まれていますか? – Sev
はい、jqueryファイルが含まれています。タブ自体が機能しています。現在のパネルではなく、完全なウィンドウ内のリンクを開くだけです。 –
OK、私はさらに得たと思います。 jqueryタブのDocsをもう一度読むと、タブのコンテンツがオンザフライで呼び出されたときに呼び出されるLoadイベントにバインドすることを認識しなければなりませんでした。 したがって、li要素でリンクを使用すると、タブ内のリンクで作業しています。しかし、最初のコンテンツについてのみ。タブのコンテンツが置き換えられ、新しいコンテンツにもリンクが含まれている場合、リンクにイベントを再バインドするにはどうすればよいですか? –