2014-09-10 3 views
0

У меня есть случай:Как показать класс с зависанием в Javascript?

HTML:

<div class="a b"> 
    <span class="one">Success ONE</span> 
    <span class="two">ONE</span> 
</div> 

<div class="a b"> 
    <span class="one">Success TWO</span> 
    <span class="two">TWO</span>  
</div> 

Я хочу показать .two, который по умолчанию скрыта. Если я использую CSS, я могу использовать:

.two {visibility:hidden;} 
.a:hover .two {visibility:visible;} 

Он хорошо работает при использовании CSS, но в моем случае, я должен комментировать этот тег CSS .a: парения .two {видимость: видимый;}.

Я хочу показать. Два с JavaScript. Не могли бы вы помочь мне показать. Два раза, когда они парят. (Я хочу, чтобы один и тот же результат с JavaScript как с помощью .a:hover .two {visibility:visible;})

+0

Ваши имена классов полностью не вводят в заблуждение, учитывая ваши строки содержимого. Нет, совсем нет. :) – Amadan

+0

вы можете объяснить это по-другому? Не уверен, что вы ищете – jmore009

+0

Вы пытаетесь показать скрытый '.two' при наведении JavaScript? Или переключить видимость '.one' и' .two' на зависание? Или что-то другое? – Amadan

ответ

4

Я не знаю, почему вы хотите сделать это с помощью JS, когда это можно сделать с помощью CSS, но здесь вы идете:

CSS

.two {display:none;} 

JS

$(".a").hover(function(){ 
    $(this).find(".two").toggle(); 
}); 

FIDDLE

// EDIT

Это был мой первоначальный ответ. Я изменил его, чтобы сократить код, но я его отправлю:

$(".a").hover(function(){  
    $(this).find(".two").css({"visibility":"visible"}); 
}, function(){  
    $(this).find(".two").css({"visibility":"hidden"}); 
}); 
+0

только на SO люди лишают вас за рабочий ответ, позаботиться о том, чтобы объяснить? – jmore009

+0

Это, кажется, отвечает на вопрос ОП, так что не знаю, почему это было приостановлено. Обратите внимание, что существует разница между «display: none» и «visibility: hidden», а именно, что элемент с «visibility: hidden» будет по-прежнему занимать пространство экрана. Но это, конечно, не причина для downvote. –

+0

Я не голосовал, но думаю, следует упомянуть, что «display: none» имеет последствия доступности, которые могут быть нежелательны в зависимости от конкретного обстоятельства. 'видимость: скрытая; position: absolute; 'предпочтительно, если вы хотите, чтобы текст читался читателем экрана. –

1

Сначала вы должны объявить в css.

.two {display:none;} 

после этого сделайте что-нибудь подобное.

<script> 
$(document).ready(function(){ 
    $(".a").hover(function(){ 
    $(this).find('> .two').css("display","block"); 
    },function(){ 
    $(this).find('> .two').css("display","none"); 
    }); 
}); 
</script> 
0

Проблема решена. Я использую Javascript:

$(".a").hover(function(){ 
    $(this).find(".two").css({"visibility":"visible"}); 
}, function(){ 
    $(this).find(".two").css({"visibility":"hidden"}); 
}); 

Это предыдущий ответ от @ jmore009, прежде чем он редактировал свой последний ответ.