2014-09-24 4 views
1

Вопрос кажется странным Я предполагаю, но позвольте мне объяснить возникшую проблему:Как перезагрузить/перезагрузить функцию jquery UI resizable?

На моем веб-сайте у меня есть 3 изменяемых объекта. Все изменчивые divs имеют один и тот же класс. В начале я инициализировать изменяемую функцию с:

$('.class_of_the_3_divs').resizable({ 
    aspectRatio: aspect_ratio, 
    handles: 'se', 
    containment: '#wrapper', 
    ... 
}); 

Поскольку не все изменяемых размерами дивы видны в то же время и изменениях соотношения аспекта, который я хотел бы, чтобы перезагрузить функцию, так что ток соотношение сторон будет принято. Это возможно? Я не хочу писать изменяемую функцию со всеми параметрами снова и снова.

ответ

2

Позволяет попробовать:

var func = function() { 
    $('.class_of_the_3_divs').resizable({ 
     ... 
    }); 
}; 

$(document).ready(function() { 
    func(); 
    ... 
}); 

Вашей «изменяемая» функция вызывается один раз после загрузки документа, и вы можете назвать это позже, тоже.

+0

Yeah thx. Конечно, ваш код работает, но есть встроенная функция, которая ведет к лучшей производительности. Я просто сохранил свои настройки в переменной var settings = {...} и назвал $ ('. My_selector'). Resizable (settings); после того, как документ готов, и когда изменяется переменная моего формата, я называю $ (". presentation"). resizable ("destroy"); и функцию сверху. Но моя проблема заключалась в том, что значок «Мой обработчик» находился в неправильном положении, и это было вызвано неправильным порядком моих переменных. Я установил переменную высоты, основанную на переменной соотношения сторон, перед тем, как было установлено новое соотношение сторон. Silly me – user2718671

+0

Чтобы увеличить производительность, вы можете ограничить область поиска, выбрав общий родительский элемент div: '$ ('common_parent'). Children ('. Class_of_the_3_divs'). Resizable (..)' –