2014-09-24 73 views
1

这个问题似乎很奇怪我猜想,但让我解释一下问题:如何重新启动/重新加载jQuery UI可调整大小的功能?

在我的网站上我有3个可调整大小的对象。所有可调整大小的div都有相同的类别。一开始,我初始化可调整大小的功能:

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

因为不是所有的可调整大小的div在同一时间和长宽比的变化,我想重新加载功能,使得当前的长宽比将被传递可见。那可能吗?我不想一次又一次地写出所有选项的可调整大小的函数。

回答

2

让我们试着:

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

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

你的“调整大小”功能加载文档后调用一次,并且,你可以再打这一点。

+0

是的。你的代码当然是可用的,但也有一个内置函数可以带来更好的性能。我只是将我的设置保存在一个变量var settings = {...}中,并调用$('。my_selector')。resizable(settings);文档准备就绪后,当我的宽高比变量发生变化时,我调用$(“。presentation”)。resizable(“destroy”);和上面的功能。但我的问题是,se处理程序图标处于错误的位置,这是由我的变量顺序错误造成的。在新宽高比出现之前,我会根据宽高比变量设置高度变量。傻我 – user2718671 2014-09-24 12:24:34

+0

为了提高性能,你可以通过选择一个共同的父母的divs来限制搜索区域:'$('common_parent')。children('。class_of_the_3_divs')。resizable(..) – 2014-09-24 12:39:23

相关问题