2015-09-16 5 views
-1

При наведении на изображение я хотел бы показать элемент списка. Моя проблема в том, что я не совсем уверен, как вызывать только li, который я вишу, используя jquery.На картинке hover показать элемент списка

HTML

<ul class="test"> 
<li><img></li> 
<li class="hidden"><img></li> 
<li><img></li> 
<li class="hidden"><img></li> 
</ul> 

CSS

.test .hidden { display:none; } 

Jquery

$(document).ready(function(){ 
    $(this).find(".test li img").hover(function(){ 
     $(this).find('.test .hidden').show(); 
     },function(){ 
     $(this).find('.test .hidden').hide(); 
     }); 
}); 
+5

Как вы можете навести курсор на изображение, если его родитель скрыта? Не будет ли скрыто изображение тоже? –

+0

Правда, исправлено. – themanwhoknowstheman

+0

Это должно лучше понять мой вопрос. – themanwhoknowstheman

ответ

0

I создали для вас скрипку. Просто взгляните на это.

<ul class="test"> 
<li><span class="image">Image 1</span></li> 
<li class="hidden"><img>showthis</li> 
<li><span class="image">Image 2</span></li> 
<li class="hidden"><img>showthis</li> 
</ul> 

.test .hidden { display:none; } 

$(document).ready(function(){ 
    $(".test li .image").mouseover(function(){ 
     $(this).parent('li').next('li').removeClass("hidden"); 
    }); 

    $(".test li .image").mouseout(function(){ 
     $(this).parent('li').next('li').addClass("hidden"); 
    }); 
}); 

https://jsfiddle.net/swaprks/2zs1sq65/

+0

Это не для меня. У меня нет стрельбы на мыши. – zipzit

+0

При наведении изображения ему нужно отобразить элемент списка. – Swaprks

+0

Хотя мой первоначальный вопрос смутил некоторых, это было ближе всего к тому, что я собирался после. Большое спасибо. – themanwhoknowstheman

0

нет никакого способа, чтобы парить над скрытый элемент, другой способ довольно легко.

вот JSFiddle (Намек на следующий раз ... сделать это, прежде чем задать вопрос.)

(without any CSS at all...) 

<ul class="test">test 
<li><img src="https://placehold.it/350x150"/></li> 
<li><img src="https://placehold.it/350x150"/></li> 
<li><img src="https://placehold.it/350x150"/></li> 
</ul> 

$(document).ready(function(){ 
    $(".test li img").hover(function(){ 
     alert("Hello there."); 
     $(this).hide(); 
     }); 
}); 

Что, именно то, что вы пытаетесь достичь?

Обновление: JSfiddle У вас должно быть что-то зависающее, даже если его несколько «nonBlankingSpaceCharacters» Здесь я использую точки для неупорядоченного списка. (На самом деле, как я смотрю на это, на этом JSfiddle, то <li> элемента имеет 100% ширину дисплея, поэтому ловит события наведения курсора мыши довольно легко.)

.test li img{display: none;} 
img:hover { outline: dotted red; } 

<ul class="test">test 
<li><img src="https://placehold.it/350x150"/></li> 
<li><img src="https://placehold.it/350x150"/></li> 
<li><img src="https://placehold.it/350x150"/></li> 
</ul> 

$(document).ready(function(){ 
    $(".test li").hover(function(){ 
     //alert("Hello there."); 
     $(this).children("img").show(); 
     }); 
}); 

Одна хорошая ссылка Mozilla Developer Network posting on Hover event. Посмотрите на описании Выпадающего меню.

+0

Согласен с этим решением. –

3

Вы можете использовать следующий код в CSS, без Jquery:

li:hover{ 
    display:block; 
} 

HTML код:

<ul > 
<li> test<img src="https://placehold.it/350x150"/></li> 
<li>test<img src="https://placehold.it/350x150"/></li> 
<li>test<img src="https://placehold.it/350x150"/></li> 
</ul> 

CSS код:

li:hover >img{display:block !important;} 

Jsfiddle Link

+0

Это, на мой взгляд, лучший способ пойти. – AdityaParab

+0

Это не имеет смысла, потому что вы не можете навестить 'li', если он имеет' display: none' ... –

+0

Вы пробовали это в jsfiddle или тестовой программе? это не работает для меня, ref: скрипка ниже. – zipzit

Смежные вопросы