1

マウスをオブジェクトの上に置いたときにイベントがトリガーされるようにします。jquery の mouseuner または mouseover を使用しようとすると、ページの読み込み時にイベントが 1 回トリガーされ、画像または画像ボックスにカーソルを合わせてもトリガーされません

私のコードは以下です。何が起こっているのか本当にわかりません。ありがとうございました。

<!DOCTYPE html>
<html>
    <head>
        <script src="jquery-1.9.1.min.js">
        </script>
        <script>
            var img = '';
            var offset_const = 0.03;

            var timer = '';

            $(document).ready(function(){

            function init(obj, image, psize){
                var height = obj.height();
                //obj.height(1000);
                var imageId = 'vtourImg';

                img = $('<img id="'+ imageId +'">');
                img.attr('src', image);
                img.attr('height', height);
                obj.append(img);

                //$(obj).mouseenter(function(e){setInterval(function(e){scroller(e);}, 1000);});
            }

            function scroller(e){
                //setTimeout(scroller(e), 10000);
                var x = e.pageX - this.offsetLeft;
                var y = e.pageY - this.offsetTop;
                var midX = $(this).width() / 2;

                var current_offsetX = img.offset().left;
                var offsetX_add = offset_const * -1 * (x - midX);
                var offsetX = 0;

                offsetX = current_offsetX + offsetX_add;

                img.offset({left: offsetX });
            }

                init($('#vtour'), 'virtualtour4.jpg', 0.00);
                img.mouseenter(alert('test'));
            });
        </script>
    </head>

    <body>
        <div id="vtour" style="width:500px;height:500px;border:3px black solid;overflow:hidden;"></div>
    </body>

</html>
4

1 に答える 1

4

mouseenter関数をメソッドに渡す必要があります。

img.mouseenter(function(){alert('test')});

これで、入力するとすぐに無名関数が実行されます。あなたが持っていたように、alert('test')ページの読み込み時に実行しましたが、関数をイベント ハンドラーに渡しませんでした。

于 2013-03-22T22:46:28.550 に答える