Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Правильный переход с live на on для события mouseover (https://javascript.ru/forum/misc/85211-pravilnyjj-perekhod-s-live-na-dlya-sobytiya-mouseover.html)

Zdravko 10.05.2023 17:48

Правильный переход с live на on для события mouseover
 
Здравствуйте.
У меня есть функция для всплывающего div блока:
( function(c) { 
	c.fn.setPopup = function(e) { 
		var d = c(this); 
 
		e = ( e === undefined ) ? 5000 : e; 
		// При наведении мышки останавливаем блок div, чтобы он не спрятался. 
		d.data( 'hover', false).data( 'time', e ).find( 'div' ).live( 'mouseover', function() { 
			d.data ( 'hover', true ); 
			c(this).show(); 
			clearTimeout( c(this).data( 'timeout' ) ); 
			// Если убрали мышку с блока div. 
		} ).live( 'mouseout', function() { 
			d.data( 'hover', false ); 
			var f = setTimeout( function() { 
				d.find( 'div:last' ).remove(); 
			}, 
			d.data( 'time' ) ); 
			c(this).data( 'timeout', f ); 
		} ); 
		d.find( 'div' ).find( 'a:first' ).click( function(f) { 
			c( f.target ).parent( 'div' ).remove(); 
			return false; 
		} ); 
		return d 
	}; 
} 
)(jQuery);

суть в том, что при наведении на блок мышкой, таймер перехода должен остановиться, на старой версии jquery скрипт работает, но в новой версии "live" уже устарел и скрипт не правильно работает(выдает ошибку), смена "live" на "on" не выводит ошибку, но и не работает остановка таймера при наведении на блок.
Как в данном случае можно исправить работу скрипта?

рони 10.05.2023 20:55

Цитата:

Сообщение от Zdravko
Как в данном случае можно исправить работу скрипта?

сделайте минимальный рабочий пример(html, css, js) со старой версией
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

ksa 11.05.2023 12:57

Цитата:

Сообщение от Zdravko
d.data( 'hover', false).data( 'time', e ).find( 'div' ).live( 'mouseover', function() {...})

Вот так, вроде, менять нужно

d.data( 'hover', false).data( 'time', e ).on('mouseover', 'div',  function() {...})


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