0

いくつかのナビゲーションボタンのマウスオーバーで複数のアニメーションを起動させたいのですが。関数内のすべてのアニメーションとパラメーターを指定し、マウスがそのボタンの上にあるときはいつでも、各ボタンに対して呼び出されるようにしたいと思います。これまでのところ、ボタンのすべてのインスタンスにのみ適用できます。関数で「(this)」を使ってみましたが、うまくいきません。

<script type="text/javascript">
    $(document).ready(function(){
        function navmouseover1() {
            $(this).animate({ left:"+=10",top:"+=10",width:"-=20px",height:"-=20px",opacity:1 },100 );   
        }
        $("#nav1").mouseover(function() { navmouseover1(); });
        $("#nav2").mouseover(function() { navmouseover1(); });
    });
4

1 に答える 1

2

これを使用することはできますが、イベントを別の関数でラップするのではなく、関数にバインドする必要があります。例:

$('#nav1').mouseover(navmouseover1);

現在発生している問題は、「this」変数がイベントリスナーに対して正しく設定されていることですが、そのイベントリスナー内から関数を呼び出すため、スコープが異なります。

于 2012-04-21T19:04:37.490 に答える