Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   JQuery два действия к одному элементу (https://javascript.ru/forum/events/54843-jquery-dva-dejjstviya-k-odnomu-ehlementu.html)

koctul 02.04.2015 22:23

JQuery два действия к одному элементу
 
Назначаю событие OnClick для элемента "#msgFlash", и в следующей строке задаю его скрытие с задержкой.

$('#msgFlash').click(function() {$('#msgFlash').fadeOut()});
$('#msgFlash').delay(30000).fadeOut();


Проблема в том что что-то одно работает отлично, но вместе эти строки работать не хотят. Как решить данную проблему?

рони 02.04.2015 22:32

koctul,
а вместе то как они должны работать?

koctul 02.04.2015 22:36

Цитата:

Сообщение от рони (Сообщение 364705)
koctul,
а вместе то как они должны работать?

Ну мне нужно назначить обработчик событий "onclick" для сообщения в случае если на нем кликнут - оно должно спрятаться. И также если не кликнут тогда нужно его спрятать через определенное время автоматически.

рони 02.04.2015 22:39

koctul,
delay убрать -- поставить таймер -- в первой строке в функции таймер обнулять перед скрытием - понятно?

рони 02.04.2015 22:51

koctul,
var $msg = $('#msgFlash'), out = function() {$msg.fadeOut()},
timer = window.setTimeout(out, 30000);
$msg.click(function() {
   window.clearTimeout(timer); out()
});

koctul 02.04.2015 22:53

Цитата:

Сообщение от рони (Сообщение 364709)
koctul,
delay убрать -- поставить таймер -- в первой строке в функции таймер обнулять перед скрытием - понятно?

К сожалению непонятно насчет таймера. Как его в JavaScript реализовать?

Chiz 05.04.2015 14:41

koctul, попробуйте $('#msgFlash').click(function() {$(this).fadeOut()}).delay(30000).fadeOut();

рони 05.04.2015 14:54

Chiz,
и как ваш код сделает это
Цитата:

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



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