0

ナビゲーション バーの新しい関数を作成しています。以前はクリックするとドロップダウンしていましたが、新しい方法は、矢印 (下向き) にホバーしたときです。

私が抱えている問題は、私が書いたスクリプトが新しいバージョンの jQuery ではうまく動作するが、このサイトのバージョンでは正しく動作しないことです。

jQueryの最新バージョンの例を参照してください: http://jsfiddle.net/titanium/wDEjs/

バージョン 1.4.1の例を参照してください: http://jsfiddle.net/titanium/SmhHM/

スクリプト自体に問題はありません (新しいスクリプトの場合) が、このバージョンのエラー/バグを回避するためにバージョン 1.4.1で機能するように変更する必要があります。誰かがエラー/バグが何であるかを知っていて、これを回避するための正しい方向に私を向けることができたとしても、それは素晴らしいことです.

新しいバージョンのjQueryを使用するのが最善の方法であることは理解していますが、これを試してみましたが、サイトの周りでいくつかのことを台無しにしているようです(非常に大きなサイトです)。

現時点で使用しているコードは次のとおりです (最新バージョンの jQuery で正常に動作します)。

HTML

<ul>
    <li>Page <span>sub</span></li>
    <li>Page <span>sub</span></li>
    <li>Page <span>sub</span></li>
    <div class="clear"></div>
</ul>

<div class="sub">
    <p>Some stuff here for the menu</p>
</div>

CSS

ul {
    margin:0;
    padding:0;
}
li {
    float:left;
    padding:0 50px;
    background-color:#eee;
}
span {
    cursor:pointer;
}
.clear {
    clear:both;
}
.sub {
    width:400px;
    height:300px;
    display:none;
    background-color:#ccc;
}

Javascript

$(document).ready(function() {
    $("span, .sub").hover(function() {
        $(".sub").stop(true, false).slideToggle();
    });
});
4

2 に答える 2

-1

この状況での回避策が1つあります(良い方法ではありませんが、特に古いバージョンのjQueryライブラリを処理する場合は機能します)。

<script src="/js/jquery-1.4.1.min.js"></script>
<script src="/js/jquery-1.9.1.min.js"></script>
<script>
  var jQuery_1_9_1 = $.noConflict(true);
</script>

jQuery関数を呼び出すときは、グローバル変数を使用するのではなく、$作成した変数を使用します。この場合、それはになりますjQuery_1_9_1

最終的な結果は、スクリプトの次の変更になります。

$(document).ready(function() {
    $("span, .sub").hover(function() {
        jQuery_1_9_1(".sub").stop(true, false).slideToggle();
    });
});
于 2013-02-16T19:37:24.933 に答える
-1

少しt know really why its working like that, but it does work with jquery 1.4.1 and if you change the second parameter of the stop, to true, itバグがありll work, cause itますが、アニメーションの最後にジャンプします。これを false のままにしておくとどうなるかというと、そうしないとアニメーションがt let the animation finish, it終了した前のポイントにスライドします。

于 2013-02-16T15:13:07.380 に答える