Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Проблема с hover (https://javascript.ru/forum/jquery/48626-problema-s-hover.html)

Ingiborn 10.07.2014 13:52

Проблема с hover
 
Помогите решить проблему

<div>
<div class="img"><img src="большое фото" class="image"></div>
<div class="new_img">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
</div>
</div>
 
<div>
<div class="img"><img src="большое фото" class="image"></div>
<div class="new_img">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
</div>
</div>
 
<div>
<div class="img"><img src="большое фото" class="image"></div>
<div class="new_img">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
</div>
</div>


и т.д

Вот код, который использую для подмены src изображения.
$(function() {
    var osrc = $('.image').attr('src');
    $('.big').hover(
        function() {
            var nsrc = $(this).attr('rel');
                $('.image').attr({src : ''+nsrc+''});
        },
        function() {
            $('.image').attr({src : ''+osrc+''});
        }
    );
});

Работает, но неверно, меняется у всех .image картинка, которые есть на странице, а надо только у этого дива, в который он обрамлён!
Помогите решить проблему, замучился уже.

Спасибо огромное заранее!

рони 10.07.2014 14:31

Ingiborn,
:cray:
$(function () {
    $(".img").each(function (indx, el) {
        var image = $(".image", el),
            osrc = image.attr("src"),
            next = $(el).next();
        $(".big", next).hover(function () {
            var nsrc = $(this).attr("rel");
            image.attr({
                src: nsrc
            })
        }, function () {
            image.attr({
                src: osrc
            })
        })
    })
});

Ingiborn 10.07.2014 15:24

Не работает :(

Ingiborn 10.07.2014 15:31

Не заменяется картинка..
У моего варианта работает, но если наводишь на любое изображение с классом big, то все изображение с классом image становяться тем изображением, которое в классе big, а надо чтобы только у одного
<!-- Блок с фото 1 ->
<div>
<div class="img"><img src="большое фото" class="image"></div>
<div class="new_img">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
</div>
</div>
<!--конец Блок с фото 1 -->

<!-- Блок с фото 2 ->
<div>
<div class="img"><img src="большое фото" class="image"></div>
<div class="new_img">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
</div>
</div>
<!-- Блок с фото 2 -->

Навёл на любой big, в блоке 1 основное фото (image) поменялось на big, но только у этого блока 1, а не у всех.

рони 10.07.2014 15:34

Ingiborn,
в каком месте неработает?
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
</head>

<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function () {
    $(".img").each(function (indx, el) {
        var image = $(".image", el),
            osrc = image.attr("src"),
            next = $(el).next();
        $(".big", next).hover(function () {
            var nsrc = $(this).attr("rel");
            image.attr({
                src: nsrc
            })
        }, function () {
            image.attr({
                src: osrc
            })
        })
    })
});

</script>
<div>
<div class="img"><img src="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img1-lg.jpg" class="image"></div>
<div class="new_img">
                <img src="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img2-thumb.jpg" rel="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img2-lg.jpg" class="big">
                <img src="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img3-thumb.jpg" rel="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img3-lg.jpg" class="big">
                <img src="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img4-thumb.jpg" rel="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img4-lg.jpg" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
</div>
</div>

<div>
<div class="img"><img src="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img5-lg.jpg" class="image"></div>
<div class="new_img">
                <img src="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img6-thumb.jpg" rel="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img6-lg.jpg" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
</div>
</div>

<div>
<div class="img"><img src="большое фото" class="image"></div>
<div class="new_img">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
                <img src="маленькая фотка" rel="большое фото" class="big">
</div>
</div>

</body>

</html>

Ingiborn 10.07.2014 15:54

Хм.. может что-то я напортачил, щас буду искать.

Ingiborn 10.07.2014 16:21

Окончательная структура такая, при ней не хочет работать =(
<div>
<div class="img"><a href="большая фотка"><img src="большая фотка" class="image"></a></div>
<div class="title"><a href="ссылка на альбом">Название альбома</a></div>
<div class="new_img">
	<div class="news_img">
	        <img src="маленькая фотка" rel="большая фотка" class="big">
		<img src="маленькая фотка" rel="большая фотка" class="big">
		<img src="маленькая фотка" rel="большая фотка" class="big">
		<img src="маленькая фотка" rel="большая фотка" class="big">
		<img src="маленькая фотка" rel="большая фотка" class="big">
		<img src="маленькая фотка" rel="большая фотка" class="big">
	</div>
</div>
</div>


Спасибо заранее!!!!! За всё!

рони 10.07.2014 16:59

Ingiborn,
строка 16 --
next = $(el).parent();

Ingiborn 10.07.2014 17:14

Цитата:

Сообщение от рони (Сообщение 320487)
Ingiborn,
строка 16 --
next = $(el).parent();

СПАСИБО!!!!!!


Часовой пояс GMT +3, время: 08:02.