我有一个非常基本的问题。我的代码无效,因为它没有识别调用jQuery的div。
我尝试使用this.id
或$(this).attr('id')
提醒您,点击相关div时我没有收到提醒。但是当我点击其他元素时,我会收到警报。这是我的HTML:
<div id="map"><img src="../../images/map2.jpg" /></div>
<div id="n_america" style="position:absolute;top:171px;"><img src="../../images/maps/north_america.jpg" /></div>
<div id="euro" style="position:absolute;top:171px;"><img src="../../images/maps/eurafrica.jpg" /></div>
<div id="table-bottom" style="position:absolute; margin-top:-70px;">
<div id="table-btm-title" style="width:255px;"><a id="north_america" href="#">North America and Latin America</a></div>
<div id="table-btm-title" style="width:147px;"><a id="eurafrica" href="#">Europe and Africa</a></div>
<div id="table-btm-title" style="width:230px; border:none;"><a id="asiapacific" href="#">Asia and South Pacific</a></div>
</div>
这是我的jQuery:
$(function(){
$('#n_america').css({ opacity: 0 });
$('#euro').css({ opacity: 0 });
$('#north_america').click(function() {
$('#map').animate({ opacity: 0}, 'slow');
$('#n_america').animate({ opacity: 1 }, 'slow');
$('#euro').animate({ opacity: 0 }, 'slow');
$('#n_america').imagemap([
/...
]);
});
$('#eurafrica').click(function() {
$('#map').animate({ opacity: 0}, 'slow');
$('#euro').animate({ opacity: 1 }, 'slow');
$('#n_america').animate({ opacity: 0 }, 'slow');
if (this.id == 'euro') {
$('#euro').imagemap([
/...
]);
}
});
});
图像映射插件适用于欧洲,但不适用于北美。北美在昨天工作,直到我加入欧洲。但评论欧洲图像地图并没有“重新激活”北美代码。有什么想法吗?
答案 0 :(得分:6)
$('#eurafrica').click(function() {
//...
if (this.id == 'euro') {
// This will never be true
您正在为ID为eurafrica
的元素分配点击处理程序;当然,传入的元素永远不会有euro
的id。
如果eurafrica
(您的代码中未包含)是所有这些元素的父元素,您可以这样做:
$('#map, #n_america, #euro').click(function(){
if (this.id=='euro'){ ... }
});
或者:
$('#eurafrica').click(function(e){
if (e.target.id=='euro'){ ... }
});
答案 1 :(得分:0)
如果单击具有固定ID“eurafrica”的元素,为什么甚至需要变量ID检查?
答案 2 :(得分:-2)
尝试:
$(this).attr('id').getValue();