为什么我的 JavaScript onmouseover 事件没有触发?

Why does my JavaScript onmouseover event not fire?

在我的 Meteor 应用程序中,我想在鼠标悬停在图像上时响应图像的 onmouseover 事件和图像 "pop out" 图像(如 "zoom in")。我有这个代码:

HTML:

<template name="postTravelSection1">
  <div class="hide" id="postTSec1" name="postTSec1">
    <h2>Post-Travel Top</h2>
    <img id="imgPostTravelTop" name="imgPostTravelTop" src="images/1_PTE_Top_Jig.png" alt="post Travel image" height="280" width="350">
  </div>
</template>

CSS:

.popout_image{
    width: 400px;
    height: 320px;
}
.shadow {
    -moz-box-shadow: 3px 3px 4px #000;
    -webkit-box-shadow: 3px 3px 4px #000;
    box-shadow: 3px 3px 4px #000;
}

JavaScript:

Template.postTravelSection1.events({
  // 'onmouseover #imgPostTravelTop': function() {
  'click #imgPostTravelTop': function() {
    $('#imgPostTravelTop').addClass('popout_image');
    $('#imgPostTravelTop').addClass('shadow');
    $('#imgPostTravelTopRight').removeClass('popout_image');
    $('#imgPostTravelTopRight').removeClass('shadow');
    $('#imgPostTravelTopCenter').removeClass('popout_image');
    $('#imgPostTravelTopCenter').removeClass('shadow');
    $('#imgPostTravelTopBottom').removeClass('popout_image');
    $('#imgPostTravelTopBottom').removeClass('shadow');
  }
});

click 事件工作正常,但 onmouseover(当我尝试使用它而不是 click 时当然)不会触发。那么我如何才能获得对图像上 hoverentermouseover 事件的响应?

您要查找的事件是 mouseentermouseleave。 Meteor 网站上没有很好地记录可用事件,但您可以在 Github 上的 this posting 中查看它们的列表。

Template.postTravelSection1.events({
  'mouseenter #imgPostTravelTop': function() {
    //enlarge the image
  },
  'mouseleave #imgPostTravelTop': function() {
    //shrink the image
  }
});

Brian的回答一针见血。这是有效的方法(只需更改 JavaScript):

Template.postTravelSection1.events({
  'mouseenter #imgPostTravelTop': function() {
    $('#imgPostTravelTop').addClass('popout_image');
    $('#imgPostTravelTop').addClass('shadow');
  },
  'mouseleave #imgPostTravelTop': function() {
    $('#imgPostTravelTop').removeClass('popout_image');
    $('#imgPostTravelTop').removeClass('shadow');
  }
});

Template.postTravelSection2.events({
  'mouseenter #imgPostTravelTopRight': function() {
   . . .