2015-01-02 2 views
0

Я использую это руководство.Изменить изображение без обновления или перезагрузки страницы

http://jsfiddle.net/nz8qy41y/

Проблема: Когда я нажимаю на [1] [2] или [3] основное изображение не меняется. Вместо этого я перенаправлен на изображение.

Просмотреть. Основное изображение:

<div class="block-2-image"> 

<a href=<%[email protected](:original)%> data-lightbox="gallery"><%= image_tag @advertisement.pictures.first.image.url(:medium), 
    :title=> @advertisement.name,:id=>"main-image", :alt =>         @advertisement.name%></a> 

</div> 

Уменьшенные изображения:

<ul class="thumbnail"> 
    <% @advertisement.pictures.to_enum.with_index(1) do |thumb, index|%> 


     <li><a href=<%=thumb.image.url(:medium)%>><%= index %></a></li> 


    <% end %> 
</ul> 

Сценарий:

$(document).ready(function(){ 
    $('.thumbnail li').on('click',function(){ 
     $('.block-2-image a').find('img').attr('src', $(this).attr('src')); 
    }); 
}); 

Теперь, когда я нажимаю на небольших изображений он связывает с правом изображения, но и в других целях. Мне нужно изменить изображение в том же представлении.

Любая помощь?

Спасибо.

+1

'Может быть, просто измените путь к изображению, когда нажимаете на эти изображения чисел? Я пытаюсь это сделать –

+1

Что-то вроде этого [скрипка] (http://jsfiddle.net/nz8qy41y/) –

+0

@ BogdanKuštan Tnx. Но мой код не изменит основное изображение, он просто перенаправляется на правильные пути изображения. Что-то со сценарием? – Edgars

ответ

0

Это была моя ошибка.

У меня был дублирующий код сценария внутри Application.js, который перепутал все.

1

включает JQuery, если он не входит в в JQuery

$(document).ready(function(){ 
    $('.thumbnail li img').on('click',function(){ 
     $('.block-2-image').find('img').attr('src', $(this).attr('src')); 
    }); 
}); 

но с тем, как его лучше ввести полный путь для ваших изображений в HTML

1

Pure вариации JS из @ ответа Мохамеда (не тестировалось):

window.onload = function() { 
    var selector = document.querySelector(".thumbnail li img"); 
    selector.addEventListener("click", function() { 
     var img = document.querySelector(".block-2-image img"); 
     img.setAttribute("src", selector.getAttribute("src")); 
    }); 
} 
+0

Спасибо. но идея состоит в том, чтобы избежать небольших эскизов в этом выборе. У меня для разных изображений, которые представляют собой число изображений, а не миниатюру. – Edgars

+1

Простите, можете ли вы перефразировать это? Я все еще скучаю по тому, что мне не хватает. – eatonphil

+0

@eatonphill Ваш код меняет основное изображение на миниатюру, но мне это не нужно. Мне нужно щелкнуть одно из четырех маленьких изображений, а затем изменить основное изображение с другого пути. – Edgars

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