Jquery mouseenter在加载时触发

时间:2013-03-22 22:42:58

标签: javascript jquery

当我将鼠标悬停在某个对象上时,我希望触发一个事件。 当我尝试使用jquery的mouseuner或mouseover时,事件在页面加载时触发一次,并且当我将鼠标悬停在图像或图像框上时不触发

我的代码如下。我真的不明白发生了什么。 谢谢。

<!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>

1 个答案:

答案 0 :(得分:4)

您需要将函数传递给mouseenter方法:

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

现在,您输入后将立即执行匿名功能。就像你拥有它一样,你在页面加载时执行了alert('test'),但从未将任何函数传递给事件处理程序。