2015-05-30 6 views
0

Я работаю над функцией списка продуктов. У меня есть вид сетки для каждого продукта. & Я предоставил ссылку для каждой ячейки сетки. Теперь я хочу скрыть все эти ссылки в каждой ячейке изначально на загрузке страницы. & покажет определенную ссылку внутри ячейки, когда пользователь наводится на эту конкретную ячейку и снова скрывает эту ссылку, когда пользователь перемещает курсор из ячейки. Эта ячейка - не что иное, как div.Скрыть и показать несколько ссылок на странице с помощью jquery

Ссылка на короткий список находится в элементе div, имеющем класс product-grid-item.This div - это не что иное, как ячейка сетки, на которой я хочу навести курсор. Фактически, используя функцию переключения, я могу показать/скрыть ссылку на короткий список, но мой код генерирует несколько ячеек ячеек i, e div, поэтому, когда я нахожусь на определенной сетке, ссылка отображается, но она также отображает все ссылки в другой сетки. Я просто хочу показать конкретную ссылку в сетке, на которой пользователь наводит не все ссылки в других ячейках сетки.

Как добиться этого с помощью jQuery? Это мой код:

<?php foreach ($products as $index=>$product):?> 
    <div class="product-grid-item grid-cell"> 
    <div class="shortlist" style="display: none; float:right;"> 
    <?php 
     echo CHtml::ajaxLink('<i class="fa fa-star"></i> Shortlist',Yii::app()->createUrl('productshortlist/shortlistproduct'), 
     array('data'=>array('productId' => $product->product_id), 
     'dataType'=>'text', 
     'type'=>'get', 
     'success'=>'function(result) 
        { 
         if(result == "Success") 
         { 
         alert("Product Added to the shortlist successfully."); 
         $("#shortlistedProduct").prop("disabled",true); 
         } 
         else 
         $("#shortlist_product_error").html(result); 
         }'), 
     array('id'=>'shortlistedProduct'.$index) 
    ); 
    ?> 
    </div> 
    </div> 
<?php endforeach;?> 

Выход:

<a id="shortlistedProduct0" href="#"><i class="fa fa-star"></i> Shortlist</a> 
<a id="shortlistedProduct1" href="#"><i class="fa fa-star"></i> Shortlist</a> 

Похожие, но не работает скрипт:

<script> 
    $(".product-grid-item").hover(function() 
    { 
     $(".shortlist").toggle(); 
    } 
    ); 
</script> 
+0

Привет и добро пожаловать в SO. Пожалуйста, уделите минутку и прочитайте [помощь], чтобы узнать, как задавать вопросы здесь. Подсказка: мы хотим видеть HTML и CODE. Другой совет: прочитайте документы jQuery на [.hide()] (http://api.jquery.com/hide/) и [.show()] (http://api.jquery.com/show/) – mplungjan

+0

Добавьте GENERATED HTML. Это вопрос jQuery, а не вопрос PHP. Если вы нажмете на значок фрагмента кода, вы можете отформатировать вопрос с помощью html и jQuery. – mplungjan

+0

Фактически, PHP-код генерирует нормальную гиперссылку и использует цикл foreach, он генерирует несколько гиперссылок с разными идентификаторами. это: Shortlist Shortlist и так далее. –

ответ

0

Теперь со всей вашей доступной нам информации, мы можем, наконец, ответить на ваш вопрос

$(function() { 
 
    $(".product-grid-item").hover(function() { 
 
     $(this).find(".shortlist").toggle(); 
 
    }); 
 
});
.shortlist {display: none; float:right;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="product-grid-item grid-cell">Hover on me 
 
    <div class="shortlist"> 
 
     <a id="shortlistedProduct0" href="#"><i class="fa fa-star"></i> Shortlist</a> 
 
     <a id="shortlistedProduct1" href="#"><i class="fa fa-star"></i> Shortlist</a> 
 
    </div> 
 
</div> 
 
<div class="product-grid-item grid-cell">Hover on me 
 
    <div class="shortlist"> 
 
     <a id="shortlistedProduct0" href="#"><i class="fa fa-star"></i> Shortlist</a> 
 
     <a id="shortlistedProduct1" href="#"><i class="fa fa-star"></i> Shortlist</a> 
 
    </div> 
 
</div>

+1

Большое спасибо sir.Now, этот код работает отлично для меня. Спасибо за ваше время и терпение. :) –

2

Попробуйте добавить CSS для Div-s, чтобы показать или скрыть ссылки используя hover css selector - http://www.w3schools.com/cssref/sel_hover.asp

Я все еще думаю, что даже если вы не можете решить это, добавьте ing css hover selector для вашего product-grid-item div, чтобы показать shortlist div, затем используйте jQuery только для добавления htat css вместо jQuery toggle() или jQuery hover().

+0

Плохое обращение. Вот примеры http://stackoverflow.com/questions/5210033/show-div-on-hover-with-only-css – mplungjan

+0

Спасибо за ваш ответ. Ниже мой код –

+0

Здравствуйте, Hovo. Спасибо за ответ. Я добавил код HTML и скрипт. Надеюсь, вы поймете мой вопрос сейчас. –

0

Убедитесь, что вы включили JQuery, если да, то попробуйте этот код

<script> 
$(document).ready(function() { 


    $(".product-grid-item").hover(function() 
    { 
     $(".shortlist").toggle(); 
    } 
    ); 
}); 

</script> 
+0

@mplungjan, пожалуйста, объясните, что вы хотите ??? –

+0

Я ошибся. Ваш код работает, если в div есть зависание контента (ссылка не показана в коде OP) - например, https://jsfiddle.net/mplungjan/yb8e39zy/ – mplungjan

+0

@mplungjan убедитесь, что вы не поставили '' на 'display: none' в css или jquery –

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