2011-11-22 20 views
5

Tengo un mapa de imagen que he superpuesto con algunos marcadores en forma de anclajes. actualmente tienen un disparador vuelo estacionario en cada área de mapa de imágenes y el anclaje asociado - como se muestra en la imagen de las cámaras enter image description herejQuery treat hover en dos elementos como un elemento

que necesito para tratar estos dos elementos como uno, ya que actualmente cuando el ratón se mueve fuera de uno en el otro, llama al .hover() y la devolución de llamada nuevamente. Quiero llamar a la devolución de llamada por desplazamiento solo cuando el mouse se mueve fuera de cualquiera de los elementos.

+5

¿Nos puede mostrar el código en cuestión? – PeeHaa

+4

Si se trata de un mapa de imagen, ¿por qué no lo defines usando la forma 'polígono' y lo convierte en 1 área? –

+0

Si ambos 'anclajes 'están en el mismo contenedor, puede agregar el evento' hover' al contenedor. Pero es difícil de decir sin algún código. – PeeHaa

Respuesta

1
$('#areaID1, #areaID2').hover(function(){ 
    //same mouseover event 
}, function(){ 
    //same mouseout event 
}); 
0

Aquí está el código que estoy utilizando:

MAP.area = $('#centre_map area, #map ol li'); 
MAP.area.hover(function() { 
    // Add active classes 
    // Load content 
    load_map_activity($('body').attr('id'), $(this).attr('class')); 
}, function() { 
    // Remove active classes 
}) 


<div id="map"> 
<img src="<?php echo base_url(); ?>images/bristol_map.png" alt="bristol map" usemap="#centre_map" /> 
<map name="centre_map" id="centre_map"> 
    <area shape="poly" coords="179,95,188,87,187,53,181,48,54,29,41,38,37,53,39,77,44,87" href="#" class="paintball" alt="Paintballing" /> 
</map> 
<ol> 
    <li class="paintball"><a class="marker paintball" href="#" title="Paintballing">1</a></li> 
</ol> 

Rory McCrossan Voy a tratar esto, pero he de temer ya que el ancla se acoda sábana de la zona mapa de imagen de la llamada vuelo estacionario se volver a hacer cuando el mouse se coloca en el ancla (aunque aún estemos por encima del área del mapa).

+0

Aquí hay otra captura de pantalla para ayudar a explicar el problema http://ratty.gemnetworks.com/map.jpg – davewilly

0

He logrado el resultado deseado: estaba mirando el problema desde el ángulo equivocado, no es un problema de desplazamiento, sino que hace más llamadas ajax.

MAP.area = $('#centre_map area, #map ol li'); 
MAP.area.hover(function() { 
    // Add active classes 
    $('#map_key ol li a.'+$(this).attr('class')).addClass('active'); 
    $('#map ol li a.'+$(this).attr('class')).addClass('active'); 

    if(typeof MAP.current_content == 'undefined') 
    { 
     // Load content 
     load_map_activity($('body').attr('id'), $(this).attr('class')); 
    } 

    if(MAP.current_content != $(this).attr('class')) 
    { 
     $('#map_info > *').remove(); 
     // Load content 
     load_map_activity($('body').attr('id'), $(this).attr('class')); 
    } 
}, function() { 
    // Remove active classes 
    $('#map_key ol li a.'+$(this).attr('class')).removeClass('active'); 
    $('#map ol li a.'+$(this).attr('class')).removeClass('active'); 
}) 


function load_map_activity(centre, activity) { 
    MAP.current_content = activity; 
    $('#map_info').hide().load('/ajax/'+centre+'_'+activity, {}, function() { $(this).fadeIn('fast'); }); 
} 

Gracias a todos los que han ayudado.

0

como usted ha dicho que es necesario tratar a estos dos elementos como uno para que pueda crear un contenedor primario y en ese contenedor puede enlazar fácilmente evento

<div id="mapContainer"> 
    <div id="areaID1"> xyz </div> 
    <div id="areaID2"> xyz </div> 
</div> 

$('#mapContainer').hover(function(){ 
    //do anything 
    }, function(){ 
    //do anything 
}); 
Cuestiones relacionadas