2012-08-07 2 views
1

У меня есть дерево, которое расширяется и сворачивается, всякий раз, когда контейнер div меняет размеры, я хочу сделать некоторые другие вещи, однако .resize(), похоже, не работает так, как я хочу.Div Resize Событие не работает

У меня есть код, размещенный на jsfiddle ниже:

http://jsfiddle.net/2nXtu/

Благодарности

+0

Ошибка, 'GET https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' не работает, потому что эта ссылка больше не работает – SpYk3HH

+1

Посмотрите на этот ответ [здесь] (здесь) http://stackoverflow.com/a/3797188/586621) для плагина jQuery, который делает то, что вы хотите. –

+0

@ SpYk3HH - о чем вы говорите? – j08691

ответ

3

resize() является событием для изменения размера окна браузера.

Просто поместите программу обновления статуса в случае дублирования клик:

$('.dup').live('click', function(){ 
    var clone = $(this).clone(); 
    $(this).parent().append(clone); 
    $('.height').html($('.content-body').height()); 
    $('.status').html('Resizing'); 
}); 

Here это в действии.

+0

Проблема, с которой я сталкиваюсь с этим решением, заключается в том, что я повторно использую один и тот же макет в нескольких местах и Не хотите явно размещать код. Думаю, я оставлю код так, как он есть, и где-нибудь у меня есть код, который изменяет размер div, я вручную вызову $ ('. Content-body'). Resize(); (та же концепция, что и ваш ответ). –

0

Один из способов, которым я это сделал, - это использовать методику проверки грязности.

В основном вы проверяете размер div, который хотите контролировать в первый раз, затем зарегистрируйте функцию, которая выполняется в указанном интервале (скажем 500 мс), и снова проверяет размер div. Если размер изменился с того, что у вас было, прежде чем вы запускаете какое-либо событие или выполняете какую-то функцию и сохраняете новый размер. Он работает хорошо, если вы создаете эффективные закрытия вокруг ваших переменных.

Смежные вопросы