Jquery: не могу получить идентификатор div - PullRequest
0 голосов
/ 27 января 2011

У меня очень простая проблема.Мой код не работает, потому что он не распознает div, вызывающий jQuery.

Я пытаюсь предупредить его с помощью 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([
    /...
   ]);
  }

 });

});

Подключаемый модуль карты изображений работает отлично для Европы, но не для Северной Америки.Северная Америка работала вчера, пока я не добавил Европу.Но комментирование карты изображений Европы не «активирует» код Северной Америки.Есть мысли?

Ответы [ 3 ]

6 голосов
/ 27 января 2011
$('#eurafrica').click(function() {
  //...
  if (this.id == 'euro') {
    // This will never be true

Вы назначаете обработчик щелчка для элемента с идентификатором eurafrica; конечно, переданный элемент никогда не будет иметь идентификатор euro.

Если eurafrica (который вы не включаете в свой код) является родительским элементом всех этих элементов, вы можете сделать следующее:

$('#map, #n_america, #euro').click(function(){
  if (this.id=='euro'){ ... }
});

Или:

$('#eurafrica').click(function(e){
  if (e.target.id=='euro'){ ... }
});
0 голосов
/ 27 января 2011

зачем вам нужна переменная проверка ID, если вы щелкаете по элементу с фиксированным идентификатором "eurafrica"?

0 голосов
/ 27 января 2011

Попробуйте:

$(this).attr('id').getValue();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...