Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.07.2011, 23:00
Аспирант
Отправить личное сообщение для makar3000 Посмотреть профиль Найти все сообщения от makar3000
 
Регистрация: 04.05.2011
Сообщений: 49

Помогите найти подредактировать скрипт открытия\закрытия
В общем есть скрипт, который открывает блок и закрывает+сохраняет на куки:

$(function () {
    plus = './images/plus.png';
    minus = './images/minus.png';

    function Switchable(classname) {
        function getElementsByClassName(imgclass) {
            if (document.getElementsByClassName) {
                return document.getElementsByClassName(imgclass);
            } else {
                var nodes = document.getElementsByTagName('*'),
                    tmp = [];
                for (var i = 0; i < nodes.length; i++) {
                    if (new RegExp('\\b' + imgclass + '\\b').test(nodes[i].className)) {
                        tmp.push(nodes[i]);
                    }
                }
                return tmp;
            }
        }

        function Next(element) {
            var next = element;
            while (next = next.nextSibling)
            if ("innerHTML" in next) return next;
            return element;
        }

        function getCookie(a) {
            var b = document.cookie.match(new RegExp("(?:^|; )" + a.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, "\\$1") + "=([^;]*)"));
            return b ? decodeURIComponent(b[1]) : undefined
        }
        function setCookie(b, f, c) {
            c = c || {};
            var i = c.expires;
            if (typeof i == "number" && i) {
                var h = new Date();
                h.setTime(h.getTime() + i * 1000);
                i = c.expires = h
            }
            if (i && i.toUTCString) {
                c.expires = i.toUTCString()
            }
            f = encodeURIComponent(f);
            var a = b + "=" + f;
            for (var e in c) {
                a += "; " + e;
                var g = c[e];
                if (g !== true) {
                    a += "=" + g
                }
            }
            document.cookie = a
        }
        var nodes = getElementsByClassName(classname);
        for (var i = 0; i < nodes.length; i++) {
            var toggler = document.createElement("A");
            toggler.href = "javascript://";
            toggler.id = "toggler" + i;
            toggler.innerHTML = getCookie("toggler" + i) == "hide" ? "<img src='" + plus + "' alt='' />" : "<img src='" + minus + "' alt='' />";
            toggler.onclick = function () {
                Next(this.parentNode).style.display = getCookie(this.id) == "hide" ? "" : "none";
                setCookie(this.id, getCookie(this.id) == "hide" ? "show" : "hide", {
                    expires: new Date("01 Jan 2020")
                });
                this.innerHTML = getCookie(this.id) == "hide" ? "<img src='" + plus + "' alt='' />" : "<img src='" + minus + "' alt='' />";
            };
            Next(nodes[i]).style.display = getCookie("toggler" + i) == "hide" ? "none" : "";
            nodes[i].appendChild(toggler);
        }
    }

    Switchable("h_block");
});


<div class="h_block">Тут будет + или -</div> 
<div>содержимое блока, которое будет открыватся\закрыватся</div>


Вот как переделать <div> в

<div class="cont">содержимое блока, которое будет открыватся\закрыватся</div>

Именно с классом!?!?

Последний раз редактировалось makar3000, 29.07.2011 в 02:33.
Ответить с цитированием
  #2 (permalink)  
Старый 28.07.2011, 23:48
Аспирант
Отправить личное сообщение для makar3000 Посмотреть профиль Найти все сообщения от makar3000
 
Регистрация: 04.05.2011
Сообщений: 49

Гуру вы где!?
Ответить с цитированием
  #3 (permalink)  
Старый 29.07.2011, 00:36
Аватар для NoResponse
Профессор
Отправить личное сообщение для NoResponse Посмотреть профиль Найти все сообщения от NoResponse
 
Регистрация: 17.06.2010
Сообщений: 152

да все тут, вот только вопрос никто понять не может
Ответить с цитированием
  #4 (permalink)  
Старый 29.07.2011, 00:40
Аспирант
Отправить личное сообщение для makar3000 Посмотреть профиль Найти все сообщения от makar3000
 
Регистрация: 04.05.2011
Сообщений: 49

Нужно
<div>содержимое блока, которое будет открыватся\закрыватся</div>
задать класс, и что бы только через этот класс работало! а не чисто через <div>
Ответить с цитированием
  #5 (permalink)  
Старый 29.07.2011, 01:14
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

makar3000, разбираться в этом кошмаре никто кроме вас не будет.
добавить атрибут класса можно с помощью метода setAttribute(), обратиться, через свойство className или универсальную функцию
Ответить с цитированием
  #6 (permalink)  
Старый 29.07.2011, 02:07
Аспирант
Отправить личное сообщение для makar3000 Посмотреть профиль Найти все сообщения от makar3000
 
Регистрация: 04.05.2011
Сообщений: 49

Я просто не могу понять где задается команда что бы выводил в <div> без класса
Ответить с цитированием
  #7 (permalink)  
Старый 29.07.2011, 02:29
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

О Боже, я ослеп! Сделайте pretty print вашему коду чтоли... http://jsbeautifier.org/
__________________
kobezzza
code monkey
Ответить с цитированием
  #8 (permalink)  
Старый 29.07.2011, 02:33
Аспирант
Отправить личное сообщение для makar3000 Посмотреть профиль Найти все сообщения от makar3000
 
Регистрация: 04.05.2011
Сообщений: 49

готово
Ответить с цитированием
  #9 (permalink)  
Старый 29.07.2011, 02:41
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Гораздо лучше. Любите свой код, и тогда он полюбит вас)

То, что вам нужно, здесь:
Next(this.parentNode).style.display = getCookie(this.id) == "hide" ? "" : "none";


Функция Next - это следующий элемент, после элемента с классом h_block, т.е. ваш простой div.
__________________
kobezzza
code monkey
Ответить с цитированием
  #10 (permalink)  
Старый 29.07.2011, 02:43
Аспирант
Отправить личное сообщение для makar3000 Посмотреть профиль Найти все сообщения от makar3000
 
Регистрация: 04.05.2011
Сообщений: 49

Я не очень хорошо понимаю в JS скажите как сделать это под определенный класс? <div class="***">
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите, пжлста, найти (или написать) скрипт для смены картинок. Artweb Работа 9 25.02.2011 11:28
Помогите найти скрипт таймера amd64 Элементы интерфейса 13 17.11.2010 00:16
Помогите найти скрипт поиск по странице beilec Общие вопросы Javascript 11 16.11.2010 15:58
помогите найти скрипт DeCa Библиотеки/Тулкиты/Фреймворки 9 25.04.2010 16:46
Люди, помогите адаптировать скрипт под Оперу KiLLk Opera, Safari и др. 1 01.06.2009 01:05