0

jQuery UI 1.10.0にアップグレードすると、タブが正しく機能しなくなります。タブをクリックすると、MVCアクションへのajax呼び出しの内容がウィンドウが更新されることがあります。つまり、アンカーイベントはui-tabsイベントの前に呼び出されているように見えますか?

HTMLコード:

...
<div id="rightTabsPanel">
    <ul>
        <li class="tab-shadow"><a href="@Url.Action("Agenda", "Home")">Agenda</a></li>
        <li class="tab-shadow"><a href="@Url.Action("Twitter", "Home")">Twitter</a></li>
        <li class="tab-shadow"><a href="@Url.Action("Buienradar", "Home")">Buienradar</a></li>
        <li class="tab-shadow"><a href="@Url.Action("FileKaart", "Home")">File kaart</a></li>
    </ul>
</div>
...

私のJavaScriptコード:

    $(document).ready(function(){
    ...
    $("#rightTabsPanel").tabs({
        //Replacement for cache:false 
        beforeLoad: function( event, ui ) {
            if ( ui.tab.data( "loaded" ) ) {
                event.preventDefault();
                return;
            }

            ui.jqXHR.success(function() {
                ui.tab.data( "loaded", true );
            });
        },
        beforeActivate: function (event, ui) {
            if (ui.oldTab.text() == "Twitter" || ui.oldTab.text() == "Yammer") {
                $("#slider-code", ui.oldTab).empty();
            }
            else if (ui.oldTab.text() == "File kaart") {
                fileKaartDeInitialize(ui.oldPanel);
            }
        }
    }).bind('tabsload',function(event, ui){ 
          if (ui.tab.text() == "Agenda") {
              var $this = $('#slider-code', ui.panel);

              $this.tinycarousel({ axis: 'y', interval: true, controls: false, intervaltime: 7000 })
          }
          else if (ui.tab.text() == "Twitter") {
            var $this = $('#slider-code', ui.panel);

            $this.tinycarousel({ axis: 'y', interval: true, controls: false, intervaltime: 5000 })
         }
          else if (ui.tab.text() == "Buienradar") {
            var $this = $('#slider-code', ui.panel);
        }
          else if (ui.tab.text() == "File kaart") {
              fileKaartInitialize($('.fileKaartPage'));
        }
    });

   $("#rightTabsPanel .ui-tabs-nav li").unbind();
   ...
}

jQuery UI 1.10アップグレードガイドを注意深く読んだ後、コードのいくつかのマイナーなバグを修正できましたが、上記のバグはまだ残っています。

私の質問:-jQuery UI 1.10にアップグレードした後、同じ問題が発生する人はいますか?-誰かがこの問題を修正するための解決策やアイデアを持っていますか?

4

2 に答える 2

1

あなた一人じゃありません。NuGet パッケージを使用して JQuery 1.9.1 および JQuery UI 1.10.0 にアップグレードした後、同じ問題が発生します。したがって、少なくとも、この問題がプロジェクトに固有のものではないことはわかっています。タブは正しくレンダリングされますが、クリックすると、Ajax を介してコンテンツを取得する代わりに、URL をブラウザーに直接起動します。私は JQuery に比較的慣れていないので、その根底に到達するためのデバッグのバックグラウンドをまだ持っていません。

コードサンプル (明らかに、ここで得られるのと同じくらい簡単です):

<div id="tabs">
<ul>
    <li><a href="/AllWorkTab">All Work</a></li>
    <li><a href="/MyWorkTab">My Work</a></li>
    <li><a href="/PhotoTab">Photos</a></li>
    <li><a href="/WeatherTab">Weather</a></li>
</ul>

<script type="text/javascript">
    $(function () {
        $("#tabs").tabs();
    });
</script>
于 2013-02-27T15:41:28.067 に答える
0

私にとっての答えは、他のいくつかの依存する JavaScript ライブラリにありました。依存ライブラリ コードのエラーにより、ページでの JQuery の実行がショートしていました。後でアップグレードが必要になったのは、「Microsoft JQuery Unobtrusive Ajax」パッケージだったと思います。

于 2013-03-28T18:43:58.770 に答える