Jquery:无法获取div的ID

seh*_*mel 0 jquery jquery-plugins

我有一个非常基本的问题.我的代码无法正常工作,因为它无法识别调用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>
Run Code Online (Sandbox Code Playgroud)

这是我的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([
    /...
   ]);
  }

 });

});
Run Code Online (Sandbox Code Playgroud)

图像映射插件适用于欧洲,但不适用于北美.北美在昨天工作,直到我加入欧洲.但评论欧洲图像地图并没有"重新激活"北美代码.有什么想法吗?

Phr*_*ogz 6

$('#eurafrica').click(function() {
  //...
  if (this.id == 'euro') {
    // This will never be true
Run Code Online (Sandbox Code Playgroud)

您正在为具有id的元素分配单击处理程序eurafrica; 当然传入的元素永远不会有id euro.

如果eurafrica(您的代码中未包含)是所有这些元素的父元素,您可以执行以下操作:

$('#map, #n_america, #euro').click(function(){
  if (this.id=='euro'){ ... }
});
Run Code Online (Sandbox Code Playgroud)

要么:

$('#eurafrica').click(function(e){
  if (e.target.id=='euro'){ ... }
});
Run Code Online (Sandbox Code Playgroud)