Создать ответ 
Построение дерева иерархии или дерева комментариев
Автор Сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #61
RE: Построение дерева иерархии или дерева комментариев
Почитал немного и узнал, что в Firefox действительно есть проблема с отображением стилей (а точнее с display = 'block').

У самого Firefox не установлен, да и лень что-то его устанавливать. No

Как вариант могу предложить еще одно решение (прошлое с заменой obj_hint.display = 'block'; на obj_hint.display = ''; не сработало т.к. изначально div id="hint" имел стиль display:noneWink:

В строке <div id="hint" style="position:absolute; display:none;"> удаляем display:none;

Теперь по умолчанию блок div id="hint" у нас стал видимым, поэтому сразу после формы ответа добавляем простой код, скрывающий эту форму:
Код:
<script type="text/javascript">
comm_off()
</script>

Функции показа/скрытия формы у нас такие:
Код:
function comm_on(event,p_id,first_p) {
var obj_hint = "";
var event = event || window.event;

if (document.getElementById) obj_hint = document.getElementById('hint').style;
else if (document.all) obj_hint = document.all['hint'];
else if (document.layers) obj_hint = document.layers['hint'];

obj_hint.left = defPosition(event).x - 550 + "px";
obj_hint.top = defPosition(event).y + 15 + "px";
document.add_comment.parent_id.value = p_id;
document.add_comment.first_parent.value = first_p;
obj_hint.display = '';
}

function comm_off() {
var obj_hint = '';
if (document.getElementById) obj_hint = document.getElementById('hint').style;
else if (document.all) obj_hint = document.all['hint'];
else if (document.layers) obj_hint = document.layers['hint'];
obj_hint.display = 'none'
}

Таким образом, по умолчанию блок с формой ответа видимый, но при загрузке странички мы его при помощи JavaScript быстро делаем невидимым (пользователи не должны успеть заметить).
display = 'none' - скрывает форму, а display = '' - сбрасывает стиль формы в начальное состояние (т.е. делает ее видимой).

P.S. Сделал сейчас так у себя на сайте, было бы неплохо, чтобы Вы проверили данный метод. Blush
Кстати, возможно подобная проблема так же существует при скрытии/показе комментариев с отрицательной оценкой.
02.08.2012 21:58:04
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #62
RE: Построение дерева иерархии или дерева комментариев
Агасики! Проверил, вот с этой страницы: http://usefulscript.ru/log_info.php - опять не работает Smile Плавный спойлер кстати работает при этом без проблем. Можно было бы конечно и забить на эту проблемку если не получается (я тоже не поклонник лисы) но наши с Вами сайты около 30% пользователей юзают именно из этого браузера. В принципе не велика беда, кто захочет, может и через основную форму прокомментировать.
05.08.2012 11:46:17
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #63
RE: Построение дерева иерархии или дерева комментариев
А обычный спойлер работает в Firefox?

Все-таки косяк покоя не дает, поэтому полез в JQuery.
Вроде что-то толковое получилось.

Создал для теста отдельную страничку, проверьте, если не сложно - _usefulscript.ru/test.php
05.08.2012 19:06:08
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #64
RE: Построение дерева иерархии или дерева комментариев
(05.08.2012 19:06:08)Admin писал(а):  А обычный спойлер работает в Firefox?

Все-таки косяк покоя не дает, поэтому полез в JQuery.
Вроде что-то толковое получилось.

Создал для теста отдельную страничку, проверьте, если не сложно - _usefulscript.ru/test.php

Ого! Круто, всё работает, теперь и в лисе - да ещё и плавно появляется - как в сказке! Happy
Кодом не поделитесь случайно? Smile
(Последний раз сообщение было отредактировано 07.08.2012 в 12:12:10, отредактировал пользователь Incognito.)
07.08.2012 12:11:32
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #65
RE: Построение дерева иерархии или дерева комментариев
Ну, раз работает, то уже поставил себе на сайт, т.к. не стоит обижать наших посетителей с Firefox-ом.

Теперь как это делается:

Для начала выносим стиль кнопки (т.к. для работы нам понадобится определять нажатие на кнопку ответа в JQuery, тут нам и пригодится .open_hint):
PHP код:
<style>
 .
open_hint {margin:5px 0px 0px 0pxwidth:100pxborder1px solid #4874a3; cursor:pointer; background:#afeeee;}
</style

Далее после подключения библиотеки JQuery добавляем код, который отвечает за местоположение формы ответа и её плавное проявление и скрытие:
PHP код:
<script type="text/javascript">
$(
'html').mousemove(function(e){
 $(
'.open_hint').click(function(){
  $(
'#hint').fadeIn(700);
  $(
'#hint').offset({top:e.pageY+15left:e.pageX-550});
  return 
false;
 });
});
$(
'#close_hint').click(function(){
 $(
'#hint').fadeOut(700);
 return 
false;
});
</script> 
07.08.2012 19:21:20
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #66
RE: Построение дерева иерархии или дерева комментариев
Далее удаляем наши старые JavaScript функции: defPosition, comm_off и comm_on.

Взамен добавляем только одну попроще:
PHP код:
<script type="text/javascript">
function 
comm_on(p_id,first_p) {
 
document.add_comment.parent_id.value p_id;
 
document.add_comment.first_parent.value first_p;
}
</script> 

Далее редактируем саму кнопку "Ответить":
PHP код:
<div align="center" class="open_hint" onClick="comm_on('.$tags[$parent][$i][0].','.$tags[$parent][$i][6].')">Ответить</div

Ну и напоследок изменяем кнопку "Закрыть". Для этого просто добавляем id="close_hint" в тег кнопки.
Т.к. у Вас кнопка сделана в виде ячейки таблицы, то может и не сработать, тогда дополнительно слово "Закрыть" поместите внутрь тега <div id="close_hint"></div>.
07.08.2012 19:31:08
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #67
RE: Построение дерева иерархии или дерева комментариев
(07.08.2012 19:31:08)Admin писал(а):  Т.к. у Вас кнопка сделана в виде ячейки таблицы, то может и не сработать, тогда дополнительно слово "Закрыть" поместите внутрь тега <div id="close_hint"></div>.

Сделал всё по Вашему примеру, всё работает как обычно на 5+ , а вот кнопку так и не смог побороть - не закрывается и всё тут. Smile Вот код кнопки:

PHP код:
<td colspan="2" style="cursor:pointer;" align="right"><font color="Lawngreen" onClick="comm_off()"><div id="close_hint"><b>Закрыть [x]</b></div></font

может я не так что то сделал или что то лишнее нужно убрать? ))
(Последний раз сообщение было отредактировано 07.08.2012 в 22:01:03, отредактировал пользователь Incognito.)
07.08.2012 21:58:55
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #68
RE: Построение дерева иерархии или дерева комментариев
Удалите из кода кнопки onClick="comm_off()", т.к. функцию onClick() мы удалили ранее.
07.08.2012 22:37:31
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #69
RE: Построение дерева иерархии или дерева комментариев
(07.08.2012 22:37:31)Admin писал(а):  Удалите из кода кнопки onClick="comm_off()", т.к. функцию onClick() мы удалили ранее.

Да удалял уже то же (и сейчас удалил) все равно не помогает. Crying Я так подозреваю это всё из-за табличной верстки?
07.08.2012 22:41:40
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #70
RE: Построение дерева иерархии или дерева комментариев
Все нашел Big Grin

Просто переместите JavaScript ниже формы ответа, а еще лучше в конец файла.
07.08.2012 22:44:21
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru