Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите найти подредактировать скрипт открытия\закрытия (https://javascript.ru/forum/misc/19214-pomogite-najjti-podredaktirovat-skript-otkrytiya%5Czakrytiya.html)

dmitriymar 30.07.2011 23:04

Цитата:

Сообщение от melky
окоп вскопать

:haha:

melky 30.07.2011 23:41

я задетектил у тебя jquery. вот твой же код на твоей же jquery

<script type="application/javascript" src="http://yandex.st/jquery/1.6.2/jquery.min.js"></script>
<script type="application/javascript" src="http://yandex.st/jquery/cookie/1.0/jquery.cookie.min.js"></script>

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


<script type="application/javascript">
// управляющий скрытием\показом
var $this = $(".h_block"),
        // что будем скрывать\показывать.
        $el = $this.next();

// closing ->
// true, если будем закрывать,
// false, если будем открывать
function toggle(closing){
    
    // укоротил,как мог.
    $this.html( closing ? "+" : "-" );
    $el[ closing ? "hide" : "show" ]();
    
    // 0 или 1
    $.cookie('block_hided', closing*1 );
};

$(function(){
    // если сохранено состояние.
    var cookie = $.cookie('block_hided');
    
    // передаем Boolean;
    if( cookie !== null ) toggle( !!cookie );
    
})
    
$(".h_block").click(function(){
    // кликнутый эл
    $this = $(this);
        // эл, с которым будем взаимодействовать
        $el = $this.next();
    

    var closing = $el.is(":visible");
    
    toggle( closing ); 
});
</script>



Цитата:

Сообщение от dmitriymar (Сообщение 116383)
:haha:

ну выкопать, какая разница :)

makar3000 31.07.2011 17:21

Так а можно сделать допустим что бы было не

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

а:

<span>содержимое блока, которое будет открыватся\закрыватся</span>

melky 31.07.2011 17:27

просто поменяй html,там нет привязки к имени тега

makar3000 31.07.2011 18:06

вообщем проверьте сами скрипт. Он запоминает только закрытие! А когда нажимаешь открыть и перезапускаешь страницу он закрыт.

melky 31.07.2011 18:38

...

а самому поправить?

<script type="application/javascript" src="http://yandex.st/jquery/1.6.2/jquery.min.js"></script>
<script type="application/javascript" src="http://yandex.st/jquery/cookie/1.0/jquery.cookie.min.js"></script>

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


<script type="application/javascript">
// управляющий скрытием\показом
var $this = $(".h_block"),
        // что будем скрывать\показывать.
        $el = $this.next();

// true, если будем закрывать,
// false, если будем открывать
function toggle(closing){
    
    $this.html( closing ? "+" : "-" );
    $el[ closing ? "hide" : "show" ]();
    
};

$(function(){
    // если сохранено состояние.
    var cookie = $.cookie('block_hided');
    // передаем Boolean;
    if( cookie !== null ) toggle( !!(+cookie) );
    
})
    
$(".h_block").click(function(){
    // кликнутый эл
    $this = $(this);
        // эл, с которым будем взаимодействовать
        $el = $this.next();
    

    var closing = $el.is(":visible");
    
    // 0 или 1
    $.cookie('block_hided', closing*1 );
    
    toggle( closing ); 
});
</script>

makar3000 31.07.2011 18:54

Когда закрываю один блок, при обновлении страницы закрываются все
Код блоков:
<div class="block">
<div class="block_icon"></div>
<div class="title">Наш опрос</div>
<span>
<div class="cont">
lllljhkjhkhk
</div>
</span>
</div>


h_block заменил на block_icon

makar3000 31.07.2011 18:55

Код javascript:

<script type="application/javascript" src="http://yandex.st/jquery/1.6.2/jquery.min.js"></script>
<script type="application/javascript" src="http://yandex.st/jquery/cookie/1.0/jquery.cookie.min.js"></script>

<script type="application/javascript">
    plus = './images/plus.png';
    minus = './images/minus.png';
// управляющий скрытием\показом
var $this = $(".block_icon"),
        // что будем скрывать\показывать.
        $el = $this.next().next('span');

// true, если будем закрывать,
// false, если будем открывать
function toggle(closing){
    
    $this.html( closing ? "<img src='" + plus + "' alt='' />" : "<img src='" + minus + "' alt='' />" );
    $el[ closing ? "hide" : "show" ]();
    
};

$(function(){
    // если сохранено состояние.
    var cookie = $.cookie('block_hided');
    // передаем Boolean;
    if( cookie !== null ) toggle( !!(+cookie) );
    
})
    
$(".block_icon").click(function(){
    // кликнутый эл
    $this = $(this);
        // эл, с которым будем взаимодействовать
        $el = $this.next().next('span');
    

    var closing = $el.is(":visible");
    
    // 0 или 1
    $.cookie('block_hided', closing*1 );
    
    toggle( closing ); 
});
</script>

melky 31.07.2011 19:14

тебе надо, чтобы у нескольких блоков было сохранение ?

это уже за деньги. и не ко мне ( я ухожу сейчас на неделю )

makar3000 31.07.2011 19:16

Конечно!! Я же дал тот код...


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