Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Testweb

Как работает popup окно

Рекомендованные сообщения

Спс, вот только закрываться окно перестало...

 

Копаю

hideClose: true,

ничего не выходит

 

            elem.observe('mouseout', function(e){		
               if(popup)
                  popup.kill();
           });		

 

Тоже не работает...

Поделиться сообщением


Ссылка на сообщение
12/12/15 12:02 (изменено)

  
$$('.blclass').each(function(elem){ 

 elem.observe('mouseover', function(e){

     Event.stop(e); 

     popup = new ipb.Popup('popup', {  
			type: 'balloon',
			stem: true,
			attach: { target: elem, position: 'auto'},
			hideAtStart: false,
			initial: 'hml',
			hideClose: true,
			w: '320px;',					
     });

     elem.observe('mouseout', function(e){
         if(popup)
               popup.kill();

  });
});

 

Почему модальные окна закрываются только по щелчку?

Изменено пользователем Testweb

Поделиться сообщением


Ссылка на сообщение

:unsure: Не подскажите? :unsure:

Поделиться сообщением


Ссылка на сообщение

У меня закрывается и при mouse out. Смотрите в консоли ошибок и дебажите переменную popup. Она желательно быть локальной а не глобальной.

Поделиться сообщением


Ссылка на сообщение

Я хз, так

$$('.blclass').each(function(elem){ 

 elem.observe('mouseover', function(e){

     Event.stop(e); 

     popup = new ipb.Popup('popup', {  
               type: 'balloon',
               stem: true,
               attach: { target: elem, position: 'auto'},
               hideAtStart: false,
               initial: 'hml',
               hideClose: true,
               w: '320px;',  

    this.observe('mouseout', function(e){
	 pop.hide();	
           });	              
     });

});

 

работает, но не совсем верно. После закрытия, повторно не откроется... Ошибки в консоле отсутствуют

 

Я хз что делать...

Поделиться сообщением


Ссылка на сообщение

Окна по щелчку закрываются, почему?

 

Даже если убрать

this.observe('mouseout', function(e){

pop.hide();

});

Поделиться сообщением


Ссылка на сообщение

Вы в консоли смотрели? Во первых в этом скрипте есть синтаксические ошибки, возьмите нормальный редактор и приведите код в порядок.

Поделиться сообщением


Ссылка на сообщение

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

Но в данном случае ошибка как минимум в { target: elem, position: 'auto'} - elem это переменная цикла, вместо нее нужно использовать this.

popup - одна переменная для всех элементов. Попробуйте вместо нее массив, или непосредственно указать ее к элементу this.popup = new ipb.Popup

Поделиться сообщением


Ссылка на сообщение

Вот рабочий пример с делегированием

 

<div id="test">
<a href="#" class="blclass" data-id=1>Test 1</a><br>
<a href="#" class="blclass" data-id=2>Test 2</a><br>
</div>

<script>
var popup;
$('test').observe('mouseover', function(event) {
var row = event.findElement('a.blclass');
if(row){
	popup = new ipb.Popup('popup', {
				type: 'balloon',
				stem: true,
				attach: {target: row},
				hideAtStart: false,
				initial: row.innerHTML,
				w: '320px;'
	});
}
});
$('test').observe('mouseout', function(event) {
var row = event.findElement('a.blclass');
if(row){
	if(popup){
		popup.kill();
		popup = false;
	}
}
});
</script>

Поделиться сообщением


Ссылка на сообщение

Рабочий ;)

 

Без обертки "<div id="test">", не получится никак?

Поделиться сообщением


Ссылка на сообщение

Вы можете делегировать на любой общий родительский элемент. В данном случае это пример для наглядности. Костыль конечно, но я так и не разобрался что там с аттачами евентов. Проблема есть именно с типом balloon который прикрепляет модальное окно к элементу.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Спасибо, сойдет :rolleyes:

Поделиться сообщением


Ссылка на сообщение

На счет временного интервала.

 

Гляжу есть такой параметр как "delay: 2000,", в моем случаи он не работает, почему?

Поделиться сообщением


Ссылка на сообщение
Гляжу есть такой параметр как "delay: 2000,",

Где?

в моем случаи он не работает, почему?

Потому что нужно читать внимательно описание.

delay: this is an object with keys 'show' and 'hide'

 

delay: { show: 2000, hide: 4000 },

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение

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

Тут используются Hovercards.

Вообще можно их задействовать.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...