2016-10-27 2 views
0

Я пытаюсь изменить #lienImghref, когда нажата кнопка .product_thumbnailsli a, но она не работает. Как ни странно, .primary_image обновляется ...JQuery change .prop href

<script type="text/javascript" charset="utf-8"> 
 
    $(document).ready(function() { 
 
    $(".product_thumbnails li a").click(function(e) { 
 
     var imglink = $(this).attr("href"); 
 
     return e.preventDefault(); 
 
     $("#lienImg").prop("href", imglink); 
 
     $(".primary_image").attr("src", imglink); 
 
     $(".product_thumbnails li").removeClass("active"); 
 
     $(this).parent().addClass("active"); !1 
 
    }) 
 
    }); 
 
    </script>
<div class="product_images"> 
 
    <a href="https://images.bigcartel.com/product_images/187353065/produit_08-294HR.jpg?auto=format&amp;fit=max&amp;w=1200" class="MagicZoom" rel="zoom-position: inner" id="lienImg" title="" style="position: relative; display: inline-block; text-decoration: none; outline: 0px; width: 576px;"><img src="https://images.bigcartel.com/product_images/187353089/produit_08-304HR.jpg?auto=format&amp;fit=max&amp;h=1000&amp;w=1000" alt="Image of Bol Or" class="primary_image" style="opacity: 1;"><div class="MagicZoomBigImageCont MagicBoxShadow" style="overflow: hidden; z-index: 100; top: -100000px; position: absolute; width: 576px; height: 384px; left: 0px; opacity: 0;"><div class="MagicZoomHeader" style="position: relative; z-index: 10; left: 0px; top: 0px; padding: 3px; display: none; visibility: hidden;"></div><div style="overflow: hidden;"><img src="https://images.bigcartel.com/product_images/187353065/produit_08-294HR.jpg?auto=format&amp;fit=max&amp;w=1200" style="padding: 0px; margin: 0px; border: 0px; width: auto; height: auto; position: relative; left: -350px; top: -413px;"></div><div style="color: rgb(255, 0, 0); font-size: 10px; font-weight: bold; font-family: Tahoma; position: absolute; width: 100%; display: none; left: 0px; top: 364px;">Please upgrade to full version of Magic Zoom™</div></div><div class="MagicZoomPup" style="z-index: 10; position: absolute; overflow: hidden; display: none; visibility: hidden; width: 276px; height: 184px; opacity: 0.5; left: 193px; top: 200px;"></div><div class="MagicZoomHint" style="display: block; overflow: hidden; position: absolute; visibility: visible; z-index: 1; left: 2px; right: auto; top: 2px; bottom: auto; opacity: 0.75; max-width: 572px;">Zoom</div></a> 
 
    
 
    <ul class="product_thumbnails"> 
 
     
 
     <li class=""><a href="https://images.bigcartel.com/product_images/187353065/produit_08-294HR.jpg?auto=format&amp;fit=max&amp;h=1000&amp;w=1000"><img src="https://images.bigcartel.com/product_images/187353065/produit_08-294HR.jpg?auto=format&amp;fit=max&amp;w=300" alt="Image of Bol Or"></a></li> 
 
     
 
     <li class="active"><a href="https://images.bigcartel.com/product_images/187353089/produit_08-304HR.jpg?auto=format&amp;fit=max&amp;h=1000&amp;w=1000"><img src="https://images.bigcartel.com/product_images/187353089/produit_08-304HR.jpg?auto=format&amp;fit=max&amp;w=300" alt="Image of Bol Or" data-pin-nopin="true"></a></li> 
 
     
 
     <li><a href="https://images.bigcartel.com/product_images/187353110/produit_08-311HR.jpg?auto=format&amp;fit=max&amp;h=1000&amp;w=1000"><img src="https://images.bigcartel.com/product_images/187353110/produit_08-311HR.jpg?auto=format&amp;fit=max&amp;w=300" alt="Image of Bol Or" data-pin-nopin="true"></a></li> 
 
     
 
    </ul> 
 
    
 
</div>

ответ

0

Почему используя возврат в перед выполнением кода? Debug в консоли, вы найдете этот вопрос. Обновить код, как показано ниже. Он работает нормально.

$(document).ready(function() { 
     $(".product_thumbnails li a").click(function(e) { 
      var imglink = $(this).attr("href"); 
      e.preventDefault(); 
      $("#lienImg").prop("href", imglink); 
      $(".primary_image").attr("src", imglink); 
      $(".product_thumbnails li").removeClass("active"); 
      $(this).parent().addClass("active"); !1 
     }) 
     }); 
+0

Спасибо, но он не работает в его контексте ... См. Здесь: http://www.marieevedompierre.com/product/bol-golden –

0

Как веб-разработчик сказал preventDefault() функция не требуется, чтобы быть возвращены, также необходимо указать на IMG внутри вашего дел.

$(document).ready(function() { 
 
    $(".product_thumbnails li a").click(function(e) { 
 
     e.preventDefault(); 
 
     var imglink = $(this).attr("href"); 
 
    \t $("#lienImg > img").prop("src", imglink); 
 
      // Notice you need to point to a image 
 
    }) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<div class="product_images"> 
 
    <a href="https://images.bigcartel.com/product_images/187353065/produit_08-294HR.jpg?auto=format&amp;fit=max&amp;w=1200" class="MagicZoom" rel="zoom-position: inner" id="lienImg" title="" style="position: relative; display: inline-block; text-decoration: none; outline: 0px; width: 576px;"><img src="https://images.bigcartel.com/product_images/187353089/produit_08-304HR.jpg?auto=format&amp;fit=max&amp;h=1000&amp;w=1000" alt="Image of Bol Or" class="primary_image" style="opacity: 1;"><div class="MagicZoomBigImageCont MagicBoxShadow" style="overflow: hidden; z-index: 100; top: -100000px; position: absolute; width: 576px; height: 384px; left: 0px; opacity: 0;"><div class="MagicZoomHeader" style="position: relative; z-index: 10; left: 0px; top: 0px; padding: 3px; display: none; visibility: hidden;"></div><div style="overflow: hidden;"><img src="https://images.bigcartel.com/product_images/187353065/produit_08-294HR.jpg?auto=format&amp;fit=max&amp;w=1200" style="padding: 0px; margin: 0px; border: 0px; width: auto; height: auto; position: relative; left: -350px; top: -413px;"></div><div style="color: rgb(255, 0, 0); font-size: 10px; font-weight: bold; font-family: Tahoma; position: absolute; width: 100%; display: none; left: 0px; top: 364px;">Please upgrade to full version of Magic Zoom™</div></div><div class="MagicZoomPup" style="z-index: 10; position: absolute; overflow: hidden; display: none; visibility: hidden; width: 276px; height: 184px; opacity: 0.5; left: 193px; top: 200px;"></div><div class="MagicZoomHint" style="display: block; overflow: hidden; position: absolute; visibility: visible; z-index: 1; left: 2px; right: auto; top: 2px; bottom: auto; opacity: 0.75; max-width: 572px;">Zoom</div></a> 
 
    
 
    <ul class="product_thumbnails"> 
 
     
 
     <li class=""><a href="https://images.bigcartel.com/product_images/187353065/produit_08-294HR.jpg?auto=format&amp;fit=max&amp;h=1000&amp;w=1000"><img src="https://images.bigcartel.com/product_images/187353065/produit_08-294HR.jpg?auto=format&amp;fit=max&amp;w=300" alt="Image of Bol Or"></a></li> 
 
     
 
     <li class="active"><a href="https://images.bigcartel.com/product_images/187353089/produit_08-304HR.jpg?auto=format&amp;fit=max&amp;h=1000&amp;w=1000"><img src="https://images.bigcartel.com/product_images/187353089/produit_08-304HR.jpg?auto=format&amp;fit=max&amp;w=300" alt="Image of Bol Or" data-pin-nopin="true"></a></li> 
 
     
 
     <li><a href="https://images.bigcartel.com/product_images/187353110/produit_08-311HR.jpg?auto=format&amp;fit=max&amp;h=1000&amp;w=1000"><img src="https://images.bigcartel.com/product_images/187353110/produit_08-311HR.jpg?auto=format&amp;fit=max&amp;w=300" alt="Image of Bol Or" data-pin-nopin="true"></a></li> 
 
     
 
    </ul> 
 
    
 
</div>

+0

#lienImg - это ссылка, а не изображение ... вы можете видеть код в его контекст здесь: http://www.marieevedompierre.com/product/bol-golden –

0

Удалить возвращение e.preventDefault(); так как он разрывает ваш код сразу после инициализации var imglink.

$(".product_thumbnails li a").click(function(e) { 
    e.preventDefault(); 
    var imglink = $(this).prop("href"); 
    $("#lienImg").prop("href", imglink); 
    // ... extra code 
}); 

Эта строка в коде:

$("#lienImg").prop("href", imglink); 

уже меняет HREF атрибут lienImg к product_thumbnails ссылке кликнули.

С другой стороны .primary_image обновляется за счет этой линии:

$(".primary_image").attr("src", imglink); 

Удаление он не будет делать изменения изображения в primary_image к нажатого product_thumbnails изображения.