Jquery: can't get ID of div
I'm having a very basic problem. My code isn't working because it isn't recognizing the div that's calling the jQuery.
I try to alert it with this.id
or $(this).attr('id')
and I get no alerts when clicking on the divs in question. But I do get alerts when I click on other elements. Here is my 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>开发者_JS百科
<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>
and here is my 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([
/...
]);
}
});
});
The image map plug in works fine for Europe but not for North America. North America was working yesterday until I added Europe. But commenting out the Europe image map doesn't "reactivate" the North America code. Any thoughts?
$('#eurafrica').click(function() {
//...
if (this.id == 'euro') {
// This will never be true
You are assigning a click handler to an element with id eurafrica
; of course the element passed in will never have an id of euro
.
If eurafrica
(which you do not include in your code) is a parent element of all these elements, you could either do:
$('#map, #n_america, #euro').click(function(){
if (this.id=='euro'){ ... }
});
Or:
$('#eurafrica').click(function(e){
if (e.target.id=='euro'){ ... }
});
why do you even need the variable ID-check if you click on the element with the fixed id "eurafrica"?
Try:
$(this).attr('id').getValue();
精彩评论