鼠标悬停/鼠标悬停时未定义jQuery事件 [英] jQuery event not defined on mouseover/mouseout

查看:129
本文介绍了鼠标悬停/鼠标悬停时未定义jQuery事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个可以在jQuery 1.3.2上正常运行的函数,但是现在我试图在1.4.2上运行它,但出现以下错误未定义事件". 这是简化的代码:

hi i have a function that worked fine using jQuery 1.3.2 but now i am trying to run it with 1.4.2 and i get the following error "event is not defined". here is the code simplified:

<div id="mapcontainer><img href="" usemap="#rage_image_map">
    <div id="mytext"></div>
</div>
<map name="rage_image_map">
    <area shape="poly" href="asthma-data/county-asthma-profiles/del-norte-county-asthma-profile" coords="12,7,10,12" alt="Del Norte County">
    <area shape="poly" href="asthma-data/county-asthma-profiles/siskyou-county-asthma-profile" coords="42,3,42,6,40,8,36,11" alt="Siskyou County">
</map>

这是函数:

$(function () {
    $('area').bind('mouseover mouseleave', function () {
        var mytext = $('#mytext');
        if (event.type == "mouseover") {
            var countyname = $(this).attr("alt");
            mytext.html(countyname);
            mytext.addClass('textcontainer');
        } else {
            mytext.text('');
            mytext.removeClass('textcontainer');
        }
    })
});

该类使div mytext可见,并在其周围放一行,显示要滚动的县名.

the class makes the div mytext visible and puts a line around it, displaying the county name being rolled over.

firebug中的错误中断位于定义mytext变量的行上.但我怀疑问题在于以下语法问题:if(event.type =="mouseover")

the error break in firebug is on the line defining the mytext variable. but i suspect the problem is a syntax issue below that: if (event.type == "mouseover")

谢谢,丽兹

推荐答案

您需要这样命名事件参数:

You need to name the event parameter, like this:

$('area').bind('mouseover mouseleave', function(event){
                                                ^ add this

使用 .hover() 会容易一些,就像这样:

It's a bit easier to use .hover() though, like this:

$(function() {
  $('area').hover(function(){
    var countyname =  $(this).attr("alt");
    $('#mytext').html(countyname).addClass('textcontainer');
  }, function() {
    $('#mytext').text('').removeClass('textcontainer');
  });
});

它不是完全相同,但通常更好一些,它使用mouseentermouseleave而不是mouseovermouseout(因此输入/离开孩子).

It's not exactly the same, but a bit better usually, it uses mouseenter and mouseleave rather than mouseover and mouseout (so it won't fire when entering/leaving children).

这篇关于鼠标悬停/鼠标悬停时未定义jQuery事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆