Повторное изменение класса при клике на изображение
Всем привет! )
Есть родительский div, в котором находится миниатюра изображения: <div> <img src='preview-1.jpg' class='image-preview'> </div> При клике на эту миниатюру: (1) в её src путь меняется на путь к полному изображению, (2) меняется класс - для полного изображения class image-full, и (3) для родительского слоя добавляется атрибут clear:left;
$('.image-preview').click(function(){
$(this).attr('src', $(this).attr('src').replace('preview-', 'full-'));
$(this).removeClass().addClass('image-full');
$(this).parent('div').css('clear', 'left');
});
Всё это работает отлично, но я не могу осуществить обратный процесс. После первых действий имею: <div style="clear:left;"> <img src='full-1.jpg' class='image-full'> </div> Теперь при клике на полное изображение пытаюсь вернуть миниатюру, то есть совершить обратные действия:
$('.image-full').click(function(){
$(this).attr('src', $(this).attr('src').replace('full-', 'preview-'));
$(this).removeClass().addClass('image-preview');
$(this).parent('div').css('clear', 'none');
});
Но результата нет увы :( Какие есть мысли? |
mi.rafaylik,
Как вариант использовать on |
<style type="text/css">
div.full-active {
clear:left;
}
</style>
<div>
<img src='preview-1.jpg' class='image preview'>
</div>
<script type="text/javascript">
$('img.image').click(function(){
$(this).toggleClass('preview').toggleClass('full');
$(this).parent().toggleClass('full-active');
var a=$(this).attr('src');var b=a.replace('preview','full')
if(a==b){b=a.replace('full','preview');}
$(this).attr('src',b);
});
</script>
|
Deff, огромное спасибо, решение шикарное!
Исправил только .parent на .parent('div') :) |
| Часовой пояс GMT +3, время: 07:40. |