Перейти к контенту

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

Помогите доделать очень хороший тег! Скрытие текста, вот что у меня пока есть:

 

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

 

ББ код:

<a class='show_hide_button' id='show_hide_button'>-</a> <span class='hidden_block_title'>{option}</span>

<div class='hidden_block' id='hidden_block'>{content}</b></div>

<script type='text/javascript'>assign_show_hide_button('hidden_block', 'show_hide_button')</script>

 

ЦСС:

.show_hide_button { font-family: Courier New, Courier, Sans-Serif; border: 1px solid #888; background-color: #FFF; padding: 0 4px 0 4px; }

.show_hide_button:hover { background-color: #BCD0ED; }

.hidden_block_title { border-bottom: 1px dashed #888; padding: 0 0 1px 0; }

.hidden_block { margin-left: 8px; margin-top: 5px; }

 

Добавление функции в ips_topics.js: (не уверен, но вроде так работает)

function assign_show_hide_button(element_id, button_id, show_text, hide_text, show_display_style, current_display, onshow)
{
if (!show_text)
	show_text = '+';
if (!hide_text)
	hide_text = '-';
if (!show_display_style)
	show_display_style = 'block';

var button = document.getElementById(button_id);
var element = document.getElementById(element_id);

button.style.textDecoration = 'none';

if (current_display)
{
	element.style.display = show_display_style;
	button.innerHTML = hide_text;
}
else
{
	element.style.display = 'none';
	button.innerHTML = show_text;
}

button.href = "java script:void(null)";
button.onclick = function()
{
	if (element.style.display == 'none')
	{
		element.style.display = show_display_style;
		button.innerHTML = hide_text;
		onshow && onshow();
	}
	else
	{
		element.style.display = 'none';
		button.innerHTML = show_text;
	}

	return false;
}
}

 

Тег вроде работает, но вот в чём дело, когда добавляешь два тега, то второй не работает и по умолчанию открыт!

Пример: http://img87.imageshack.us/img87/4733/20852925ne6.gif

Причём он не то что бы просто открыт, он просто тупо не работает, как это исправить? Может просто я что то не то сделал? Вообщем надеюсь Вы мне поможете. :D

Ссылка на комментарий
Поделиться на других сайтах

  • Ответы 132
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Имхо не пашет с несколькими блоками потому как IDшники у DIV-ов одинаковые.

У тебя же JS-код по ID-шнику ищет эелемнт странички. вот отседа и проблема и вылезает.

Ссылка на комментарий
Поделиться на других сайтах

Тоесть.

Что сделать то надо? :D

Либо обращение по this (не на всех браузерах будет работать), либо создавать динамические объекты с динамическими айдишниками (геморрно писать код).

Ссылка на комментарий
Поделиться на других сайтах

А чем тебе код из другой темы не понравился(там как раз динамические id)?
Ссылка на комментарий
Поделиться на других сайтах

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

Вообщем нужен именно это, ну или хотя бы что бы очень похож был, стиль тот же и вышеперечисленное работало.

Ссылка на комментарий
Поделиться на других сайтах

Можно ли как то этот код изменить что бы в нём работали ББ теги? Просто очень надо что бы это было.

<script type='text/javascript'>

mytagid = Math.floor( Math.random() * 100 );

document.write("<a class='show_hide_button' id='show_hide_button' onclick='toggleview("+'"'+mytagid+'_closed'+'"'+");return false;'>+</a> <span class='hidden_block_title'>{option}</span><div class='hidden_block' id='"+mytagid+"_closed' style='display:none'>{content}</div>");

document.close();

</script>

Ссылка на комментарий
Поделиться на других сайтах

Вот нашёл альтернативу, но опять таки хочеться кое о чём попросить, т.е. спросить.

 

ББ

<div>

<div style="cursor: pointer; color: #000; font-size: 12px; font-family: Verdana, Tahoma, Helvetica, sans-serif; text-decoration: none" onclick="show_hide_text(this,'{option}')"><a class='show_hide_button' id='show_hide_button'>+</a> <span class='hidden_block_title'>{option}</span></div>

<div style="display: none">

{content}

</div>

</div>

 

JS

function show_hide_text(divObj,text) {
var div = divObj.parentNode.getElementsByTagName('div')[1];
if (div.style.display == 'none') {
	div.style.display = 'block';
	divObj.innerHTML = "<a class='show_hide_button' id='show_hide_button'>-</a> <span class='hidden_block_title'>" + text;
} else {
	div.style.display = 'none';
	divObj.innerHTML = "<a class='show_hide_button' id='show_hide_button'>+</a> <span class='hidden_block_title'>" + text;
}
}

 

И так вопрос: как сделать что ссылка была в виде кнопки? (т.е. кнопка уже есть но нажать можно по всей длинне сообщения, а мне надо что бы только когда нажимаешь на кнопку).

Скажите хоть как тут сделать. :D

Ссылка на комментарий
Поделиться на других сайтах

Посмотри, какой скрипт используется для спойлера на torrents.ru

ИМХО, там лучший. Работает во всех браузерах, позволяет складывать спойлер в спойлер.

Ссылка на комментарий
Поделиться на других сайтах

так там пыхпыхбебе и злостное требование зарегится...

вот еслиб ты привел html код его :D

Если разберешь закомпреснутый код, вот, держи: http://slil.ru/24987963

Ссылка на комментарий
Поделиться на других сайтах

По поводу того как с this сделать можно:

http://www.ibresource.ru/forums/index.php?showtopic=40983

 

А вот и тег SPOILER:

http://www.ibresource.ru/forums/index.php?...60&start=60

Ссылка на комментарий
Поделиться на других сайтах

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

А зачем мне разбирать копреснутый яваскрипт, если я его тупо копипасте в отдельный файл, который благополучно закешируется в браузере, а ббкод создаваться будет чисто

<div class="sp-wrap"> <div class="sp-head-wrap"><div class="sp-head folded clickable">{option}</div></div> <div class="sp-body">
<div class="sp-content">{content}<div class="clear"></div> </div></div>

правда компреснуто ацки)

 

torrents.ru не запрещают использовать этот код?

или они тож его откуда-то стырили?

Ссылка на комментарий
Поделиться на других сайтах

А зачем мне разбирать копреснутый яваскрипт, если я его тупо копипасте в отдельный файл

На торрентсах так и сделано.

Я сначала снял страницу, затем поудалял всё лишнее, чтобы получить работающую модель без лишнего кода.

 

 

 

torrents.ru не запрещают использовать этот код?

или они тож его откуда-то стырили?

Не знаю.

По-хорошему, надо бы расшифровать код и убрать нафиг плавность своротов-разворотов: это потенциальный отказ в новых браузерах.

Но лень гемороиться...

Ссылка на комментарий
Поделиться на других сайтах

вот я нашел настоящего автора, торрентс может идти фтопку

/*

* jQuery 1.1.4 - New Wave Javascript

*

* Copyright © 2007 John Resig (jquery.com)

* Dual licensed under the MIT (MIT-LICENSE.txt)

* and GPL (GPL-LICENSE.txt) licenses.

*

* $Date: 2007-08-23 21:49:27 -0400 (Thu, 23 Aug 2007) $

* $Rev: 2862 $

*/

за выплывание отвечает незакомпресованный

function initSpoilers(context)
{
var context = context || 'body';
$('div.sp-head-wrap', $(context)).click(function(){
	$(this).find('div.sp-head').toggleClass('unfolded');
	$(this).next('div.sp-body').slideToggle('fast');
});
}

 

...

 

короче это jQuery

http://code.google.com/p/jqueryjs/download...jquery-1.2.1.js

 

если заменить всю компреснутую фигню этим файлом, то ничего не изменится

 

все, нашел как сделать без выплывания

function initSpoilers(context)
{
var context = context || 'body';
$('div.sp-head-wrap', $(context)).click(function(){
	$(this).find('div.sp-head').toggleClass('unfolded');
	$(this).next('div.sp-body').toggle();
});
}

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...

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

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.