2011-01-16 3 views
3

Как можно сделать в JQuery что-то вроде этого:Показать #id - скрыть #id при наведении другой #id

<div id="principal-id"></div> // это основной идентификатор, что отображается

<div id="hover-id"></div> // когда я парить #hover -id Я хочу, чтобы # главный-id исчез и изменился с <div id="this-id"></div>. Но есть ли способ, когда я курсор на # this-id, чтобы остановить изменение, и когда курсор перемещается за пределы, возвращается к нормальному?

Надеюсь, вы понимаете ...

Спасибо!

ответ

0

это немного чище:

<div id="hover-id" style="border:1px solid black">hover over me</div> 

<div id="principal-id">normal</div> 
<div id="this-id" style="display:none">replacement</div> 

var hover = function(){ 
    $('#principal-id').toggle(); 
    $('#this-id').toggle(); 
}; 

$('#hover-id').mouseenter(hover).mouseleave(hover); 

как в: http://jsfiddle.net/HQQAV/

+0

уборщик может быть спорным. Хорошая демонстрация, хотя. Это определенно решает проблему и доказывает, что существует более одного способа кошки кошки. – jmort253

+0

@ jmort253, согласен, на самом деле я поддержал решение Box9, которое является более приятной версией шахты – davin

+0

Box9's на сегодняшний день является лучшим. Я забыл, что вы можете запятнать отдельные селектора CSS. Я должен это вспомнить. – jmort253

2

Это должно решить вашу проблему. Когда я наведении курсора мыши (парение) над парения-ид, главный-идентификатор будет скрыт, и когда я двигаю курсор мыши от парения-ид, будет еще раз отображаться принципала-ID:

// define the mouseover event for hover-id 
    $('#hover-id').mouseover(function() { 
     $('#principal-id').css('display','none'); 
    }); 

    // define the mouseout event for hover-id  
    $('#hover-id').mouseout(function() { 
     $('#principal-id').css('display','block'); 
    });     
1
$(document).ready(function(){ 
    $("#hover-id").mouseover(function() { 
     $('#principal-id').hide(); 
    }); 

    $('#hover-id').mouseout(function() { 
     $('#principal-id').show(); 
    }); 
}); 

// you didn't close the ready function correctly.    
+0

Благодаря Jayden Lawson для Edit .... – Wazzzy

1

Используйте .hover():

$("#hover-id").hover(function(){ 
       $("principal-id").hide(); 
      }, 
      function(){ 
       $("principal-id").show(); 
      }); 
2

Используйте JQuery в hover и toggle магии:

$('#hover-id').hover(function() { 
    $('#principal-id, #this-id').toggle(); 
}); 

Но только убедитесь, что #this-id изначально скрыта, через любого из следующих вариантов:

  1. CSS: #this-id {display: none;}
  2. Инлайн-CSS : <div id="this-id" style="display: none">
  3. JavaScript: $('#this-id').hide();
Смежные вопросы