为什么我的 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
时当然)不会触发。那么我如何才能获得对图像上 hover
、enter
或 mouseover
事件的响应?
您要查找的事件是 mouseenter
和 mouseleave
。 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() {
. . .
在我的 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
时当然)不会触发。那么我如何才能获得对图像上 hover
、enter
或 mouseover
事件的响应?
您要查找的事件是 mouseenter
和 mouseleave
。 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() {
. . .