ダイアログ内にjQueryタブウィジェットがあります。この Fiddleで Advisers の画像が初めてクリックされると、ダイアログとタブ ウィジェットが正常に表示されます。ただし、ダイアログを閉じて画像をもう一度クリックすると、ダイアログはレンダリングされますが、タブ ウィジェットはレンダリングされません。
タブウィジェットで使用されているメソッドに関係していると思いますtoggle()
が、そのメソッドを削除すると、タブウィジェットが表示されなくなります。アドバイザ画像の 2 回目以降のクリックでタブ ダイアログをレンダリングするために、ダイアログを閉じたときにページの状態を「再初期化」する必要があるようです (ここで UI 用語に取り組んでいることをお許しください。私はサーバーです)。 -サイドコーダー)。
誰か私にポインタを教えてもらえますか?
HTML
<a href="#" id="advisers-image">
<div class="circle hovershadow advisers advisers-box-shadow text">Professional
advisers</div>
</a>
<a href="#" id="industry-image">
<div class="circle hovershadow industry industry-box-shadow">Industry</div>
</a>
<div style="clear: both;"></div>
<div id="advisers-dialog" class="dialog">
<div id="tabs">
<ul>
<li><a href="#tabs-1">Law firms</a></li>
<li><a href="#tabs-2">Accounting and audit firms</a></li>
<li><a href="#tabs-3">Management consultants and economists</a></li>
</ul>
<div id="tabs-1">
<p>Law firm text goes here.</p>
</div>
<div id="tabs-2">
<p>Accounting and audit firm text goes here.</p>
</div>
<div id="tabs-3">
<p>Management consultants and economists text goes here.</p>
</div>
</div>
</div>
<div id="industry-dialog" class="dialog" title="Industry">Industry
text goes here</div>
Javascript
<script type="text/javascript">
$( "#tabs" ).tabs().hide();
</script>
<script type="text/javascript">
$( "#industry-dialog" ).dialog({ autoOpen: false });
$( "#industry-image" ).click(function() {
$( "#industry-dialog" ).dialog( "option", "modal", true );
$( "#industry-dialog" ).dialog( "option", "height", "auto" );
$( "#industry-dialog" ).dialog( "option", "width", 700 );
$( "#industry-dialog" ).dialog( "open" );
});
</script>
<script type="text/javascript">
$( "#advisers-dialog" ).dialog({ autoOpen: false });
$( "#advisers-image" ).click(function() {
$( "#advisers-dialog" ).dialog( "option", "modal", true );
$( "#advisers-dialog" ).dialog( "option", "height", "auto" );
$( "#advisers-dialog" ).dialog( "option", "width", 700 );
$( "#advisers-dialog" ).dialog( "open" );
$( "#tabs" ).tabs( "option", "heightStyle", "content" );
$( "#tabs" ).tabs( 'select', 0 );
$( "#tabs" ).toggle();
});
</script>