Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   не работает preventDefault() (https://javascript.ru/forum/dom-window/66002-ne-rabotaet-preventdefault.html)

Эльман 20.11.2016 16:10

не работает preventDefault()
 
Привет всем, всю голову сломал, учу jquery по видео курсу никак не работает код причем полная копия из видеокурса.
Помогите плиз, 5 раз переписал уже.

<div id="gallery">
<div id="big"><img src="images/gal/start.jpg" alt="Старт" /></div>
<div id="small">
<a href="images/gal/1.jpg"><img src="images/gal/1_mini.jpg" alt="Миниатюра 1" /></a>
<a href="images/gal/2.jpg"><img src="images/gal/2_mini.jpg" alt="Миниатюра 2" /></a>
<a href="images/gal/3.jpg"><img src="images/gal/3_mini.jpg" alt="Миниатюра 3" /></a>
<a href="images/gal/4.jpg"><img src="images/gal/4_mini.jpg" alt="Миниатюра 4" /></a>
</div>
</div>


$(document).ready(function(){
$('#small a').click(function(eventObject){
  $('#big img').hide(10000).attr('src',$(this).attr('href'));
  $('#big img').load(function(){
    $(this).fadeIn(2000);
  });
  eventObject.preventDefault();
});	
});

Эльман 20.11.2016 16:11

Цитата:

Сообщение от Эльман (Сообщение 435555)
Привет всем, всю голову сломал, учу jquery по видео курсу никак не работает код причем полная копия из видеокурса.
Помогите плиз, 5 раз переписал уже.

<div id="gallery">
<div id="big"><img src="images/gal/start.jpg" alt="Старт" /></div>
<div id="small">
<a href="images/gal/1.jpg"><img src="images/gal/1_mini.jpg" alt="Миниатюра 1" /></a>
<a href="images/gal/2.jpg"><img src="images/gal/2_mini.jpg" alt="Миниатюра 2" /></a>
<a href="images/gal/3.jpg"><img src="images/gal/3_mini.jpg" alt="Миниатюра 3" /></a>
<a href="images/gal/4.jpg"><img src="images/gal/4_mini.jpg" alt="Миниатюра 4" /></a>
</div>
</div>


$(document).ready(function(){
$('#small a').click(function(eventObject){
  $('#big img').hide(10000).attr('src',$(this).attr('href'));
  $('#big img').load(function(){
    $(this).fadeIn(2000);
  });
  eventObject.preventDefault();
});	
});

после клика картинка меняется и осуществляется переход по ссылке

Rise 20.11.2016 16:32

Эльман, сделай в начале prevent а не в конце.

Эльман 20.11.2016 16:41

Цитата:

Сообщение от Rise (Сообщение 435560)
Эльман, сделай в начале prevent а не в конце.

Поставил в начало, по ссылке не переходит, а после hide код дальше не идет. По видео уроку код как тут выложен и там работает, а у меня нет :(

laimas 20.11.2016 16:43

Rise,
да не важно, все должно работать.

Эльман,
и лучше так:

$('#small').on('click', 'a', function(eventObject){
        eventObject.preventDefault();
        $('#big img').hide(10000).attr('src', this.href).load(function(){
            $(this).fadeIn(2000);
        });
    });


Правда заложенная логика работы слайдера странная.

Эльман 20.11.2016 16:46

Цитата:

Сообщение от laimas (Сообщение 435564)
Rise,
да не важно, все должно работать.

Эльман,
и лучше так:

$('#small').on('click', 'a', function(eventObject){
        eventObject.preventDefault();
        $('#big img').hide(10000).attr('src', this.href).load(function(){
            $(this).fadeIn(2000);
        });
    });


Правда заложенная логика работы слайдера странная.

Да логика то скорее просто показать,что такое jquery. Но код всеравно нерабоает

Эльман 20.11.2016 16:47

Цитата:

Сообщение от laimas (Сообщение 435564)
Rise,
да не важно, все должно работать.

Эльман,
и лучше так:

$('#small').on('click', 'a', function(eventObject){
        eventObject.preventDefault();
        $('#big img').hide(10000).attr('src', this.href).load(function(){
            $(this).fadeIn(2000);
        });
    });


Правда заложенная логика работы слайдера странная.

всеравно переходит вконце операции по ссылке

Эльман 20.11.2016 16:54

Цитата:

Сообщение от Эльман (Сообщение 435566)
всеравно переходит вконце операции по ссылке

Если preventDefault(); указать в начале кода картинка уходит под hide,
но переход не осуществляется по ссылке и не появляется новая картинка. А если указываю вконце, то картинка новая появляется ,а потом переход по ссылке

Rise 20.11.2016 16:55

laimas, что не важно что выполнение до prevent может и не дойти вылетев в ошибку?

Rise 20.11.2016 16:56

Эльман, prevent теперь работает что и требовалось по сабжу.


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