Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

<script> срабатывает через раз


Recommended Posts

Приветствую господа!

Суть проблемы: нужно, чтобы уведомления о добавлении товара в сравнение вылезали всплывающим окном и через 5 секунд исчезали.

Вроде всё сделал и всё работает.

Но есть 2 но:

1) Скрипт срабатывает только 1 раз, а потом, чтобы он сработал ещё раз нужно перезагрузить страницу;

2) Скрип срабатывает не всегда, а где-то 4 раза из 5.

 

Как думаете, в чём может быть загвоздка?

 

Что сделано:

Изменил стиль уведомления:
 

.alert {

padding: 8px 14px 8px 14px;

position:fixed;

top:20px;

z-index: 999;

padding: 8px 14px 8px 14px;

font-size: 16px;

color: #444;

background-color: #FFFF66;

border: 3px solid #096;

}

 

В common.js:

Убрал прокрутку:

 $('html, body').animate({ scrollTop: 0 }, 'slow');

Добавил ID блоку уведомления:

$('#content').parent().before('<div id="timecompare" class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + '  <button style="color:#f00;font-size: 200%; line-height:inherit; padding:0px 10px" type="button" class="close" data-dismiss="alert">×</button></div>');

 

В product.tpl добавил скрипт:

 

<script>

setTimeout(function(){

            document.getElementById('timecompare').style.display = 'none';

}, 5000);

</script>

 

Змінено користувачем A132
Надіслати
Поділитися на інших сайтах


12 минут назад, A132 сказал:

В product.tpl добавил скрипт:

 


<script>

setTimeout(function(){

            document.getElementById('timecompare').style.display = 'none';

}, 5000);

</script>

 

это удалить

в common.js после

$('#content').parent().before('<div id="timecompare" class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + '  <button style="color:#f00;font-size: 200%; line-height:inherit; padding:0px 10px" type="button" class="close" data-dismiss="alert">×</button></div>');

добавить

setTimeout(function(){

            $('#timecompare').remove();

}, 5000);
  • +1 2
Надіслати
Поділитися на інших сайтах

45 минут назад, Blast сказал:

это удалить

в common.js после


$('#content').parent().before('<div id="timecompare" class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + '  <button style="color:#f00;font-size: 200%; line-height:inherit; padding:0px 10px" type="button" class="close" data-dismiss="alert">×</button></div>');

добавить


setTimeout(function(){

            $('#timecompare').remove();

}, 5000);

Спасибо! Помогло.

Надіслати
Поділитися на інших сайтах


13 минут назад, Venter сказал:

$('#timecompare').delay(4600).fadeOut(400);

 

так наплодятся в коде элементы с одинаковым id='timecompare' если добавлять несколько товаров в сравнение, например в каталоге

remove все равно нужен

Змінено користувачем Blast
Надіслати
Поділитися на інших сайтах

24 минуты назад, A132 сказал:

Спасибо! Так ещё лучше =)

@A132 поставь вместо

<div id="timecompare" class="alert alert-success">
<div class="timecompare alert alert-success">
$('.timecompare').delay(4600).fadeOut(400);

 

Надіслати
Поділитися на інших сайтах

5 минут назад, Venter сказал:

@A132 поставь вместо


<div id="timecompare" class="alert alert-success">

<div class="timecompare alert alert-success">

$('.timecompare').delay(4600).fadeOut(400);

 

как это решит проблему дублей? типа мусорить в коде элементами с одинаковыми айдишниками нельзя а с классами можно?

Надіслати
Поділитися на інших сайтах

17 минут назад, Blast сказал:

как это решит проблему дублей? типа мусорить в коде элементами с одинаковыми айдишниками нельзя а с классами можно?

Че за чушь несешь???? если в верстке куча col-md-12 то что это мусоришь? про айдишники согласен, а вот с классами не согласен.

ответь на вопрос

Цитата

если в верстке куча col-md-12 то что это мусоришь?

 

Змінено користувачем Venter
Надіслати
Поділитися на інших сайтах

18 минут назад, Blast сказал:

как это решит проблему дублей? типа мусорить в коде элементами с одинаковыми айдишниками нельзя а с классами можно?

дублировать классы никто не запрещал, и где это написано про дубли классов что нельзя дублировать? в любой верстке есть дубли классов, тогда по вашему вся верстка в мусоре дублей

Надіслати
Поділитися на інших сайтах

11 минут назад, Venter сказал:

дублировать классы никто не запрещал, и где это написано про дубли классов что нельзя дублировать? в любой верстке есть дубли классов, тогда по вашему вся верстка в мусоре дублей

что ж. пока есть такие прогеры у меня всегда будет оплачиваемая работа.

Конечно никто не запрещает создание блоков с одинаковыми классами, даже наоборот. НО! зачем писать код, который создаст несколько одинаковых, полностью задублированных блоков уведомлений. Да, они будут скрыты, но это ж мусорка в коде получится. Вы раз за разом будете через before() добавлять блок, потом его скрывать, а потом снова добавлять новый. Ответил?

  • +1 1
Надіслати
Поділитися на інших сайтах

19 минут назад, Blast сказал:

что ж. пока есть такие прогеры у меня всегда будет оплачиваемая работа.

Конечно никто не запрещает создание блоков с одинаковыми классами, даже наоборот. НО! зачем писать код, который создаст несколько одинаковых, полностью задублированных блоков уведомлений. Да, они будут скрыты, но это ж мусорка в коде получится. Вы раз за разом будете через before() добавлять блок, потом его скрывать, а потом снова добавлять новый. Ответил?

ТС нужно было решение ему дали два решения, пусть выбирает, можно сделать и по вашему.

а на счет пока такие прогеры есть - во первых, верстка к программированию не относиться

во-вторых, вы знать не знаете как я пишу код и что знаю, не вам судить

21 минуту назад, Blast сказал:

Да, они будут скрыты, но это ж мусорка в коде получится. Вы раз за разом будете через before() добавлять блок, потом его скрывать, а потом снова добавлять новый

и сколько же вообще по сути на странице может появится таких блоков? от 1 до 10 примерно, с переходом на новую страницу этой кучи блоков не будет. так в чем проблема?

в том что у вас есть принцип верстать вот так как вы пишете и никак иначе?

Надіслати
Поділитися на інших сайтах

3 минуты назад, Venter сказал:

ТС нужно было решение ему дали два решения, пусть выбирает, можно сделать и по вашему.

а на счет пока такие прогеры есть - во первых, верстка к программированию не относиться

во-вторых, вы знать не знаете как я пишу код и что знаю, не вам судить

и сколько же вообще по сути на странице может появится таких блоков? от 1 до 10 примерно, с переходом на новую страницу этой кучи блоков не будет. так в чем проблема?

в том что у вас есть принцип верстать вот так как вы пишете и никак иначе?

у меня есть принцип писать валидный правильный код, и делать всё как можно качественнее.

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

 

А ваше и мое решение вполне совместимы. достаточно к плавному затуханию все-таки добавить remove.

Надіслати
Поділитися на інших сайтах

3 минуты назад, Blast сказал:

у меня есть принцип писать валидный правильный код, и делать всё как можно качественнее.

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

 

А ваше и мое решение вполне совместимы. достаточно к плавному затуханию все-таки добавить remove.

$('#timecompare').delay(4600).fadeOut(400, function(){$(this).remove()});

 

  • +1 2
Надіслати
Поділитися на інших сайтах

2 минуты назад, Blast сказал:

у меня есть принцип писать валидный правильный код, и делать всё как можно качественнее.

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

 

А ваше и мое решение вполне совместимы. достаточно к плавному затуханию все-таки добавить remove.

ну вот ТС и покажите как лучше сделать

я не супер-пупер верстальщик, а программист, поэтому для меня верстка на втором-третьем плане

4 минуты назад, Blast сказал:

у меня есть принцип писать валидный правильный код, и делать всё как можно качественнее.

я рад что вы умеете делать грамотно и качественно

  • +1 2
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.