Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   при наведении выскакивает подсказка, баг... (https://javascript.ru/forum/dom-window/41890-pri-navedenii-vyskakivaet-podskazka-bag.html)

MBmusic 03.10.2013 10:24

при наведении выскакивает подсказка, баг...
 
в общем при наведении на ссылку курсора выскакивает подсказка, стоит таймер, то есть мы наводим курсор, проходит 800 миллисекунд и вылетает подсказка......но если например навести курсор и быстро убрать, не дождавшись пока пройдут 800 милисекунд то подсказка все равно вылетит, как проверить что курсор еще на ссылке?...

вот код

if(!self.options.hoverDisabled) {
	this.options.el.addEvent('mouseenter', function(){
		self.show();
	});
				
	this.options.el.addEvent('mouseleave', function(){
		setTimeout(function() {
			self.hide();
		}, 800);
	});
}


show: function() {
	var self = this;
	self.timer = setTimeout(function(){
		if ($$('.tip-content')[0]) {
			window.document.fireEvent('click');
		}
				
		if(self.tooltip == null) {
			var html = '<div class="tip-content tip-align-' + self.options.align + '"><div class="pin"></div>';
					html += '<div class="tip-text">' + self.options.content + '</div>';
					html += '</div>';
					
					self.tooltip = new Element('div', {
						'class': 'hk-tooltip-block', 
						'html': html,
						styles: {
							zIndex: self.options.zIndex
						}
					});
				}
}

danik.js 03.10.2013 10:27

Цитата:

Сообщение от MBmusic
как проверить что курсор еще на ссылке?

Зачем? Ты знаешь когда курсор уводят с сылки. Вот в этот момент и останавливай таймер показа ( clearTimeout(self.timer) )

MBmusic 03.10.2013 10:33

я это и делаю) но подсказка все равно показываеться когда курсор не на ссылке......вот мой код для скрытия подсказки...

hide: function(){
			if(this.timer) {
				clearTimeout(this.timer);
				this.timer = null;
			}
			
			if(this.tooltip) {
				this.tooltip.destroy();
				this.tooltip = null;
			}
		},

MBmusic 03.10.2013 10:50

проблема решена! danik.js, спасибо)


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