如何从另一个事件触发jquery resizable

时间:2013-06-19 15:57:12

标签: javascript jquery jquery-ui jquery-ui-resizable

我有一个可调整大小的窗口:

$(".question-case-story").resizable( 
                                    {   handles:{'s': handle },
                                        alsoResize: ".question-case-inner",
                                        //minHeight: #,
                                        //maxHeight: #,
                                        maxHeight: $(".question-case-story").height(),
                                        resize: function (event, $this) { $(this).css({left:'inherit', top:'inherit'}); }
                                    });

当我点击按钮在别处做某事时,我想让这个调整大小自动发生,但是到特定高度(窗口高度)。我怎么能这样做?

我发现了一个类似的问题,但它没有解决如何设置任何细节:How to trigger jquery Resizable resize programmatically?

同样的事情:http://forum.jquery.com/topic/triggering-resize-event-set-by-resizable

我正在运行jQuery UI v.1.9.2

更新:我不能只是“设置”新的高度($(thing).css('height', whatever)),因为该div内部还有其他与可调整大小的功能交互的内容。

2 个答案:

答案 0 :(得分:1)

应该这样做:

var manresize=false;//Variable declared in a global scope    

$('#buttonid').click(function(){
    manresize=true;
    $(".question-case-story").trigger('resize');
});

现在您需要create a custom event调用manualresize作为示例。

然后将该事件的侦听器附加到$(".question-case-story")对象

$(".question-case-story").bind('manualresize',function(){
    //Same code that would run in the .resizable() 
    //method with a resize event trigger
});

复制/使用.resizable()事件调用的resize窗口小部件中的代码(不是100%肯定这个,但我认为jQuery遗憾地不使用prototype)您的自定义活动

$(".question-case-story")对象中:

resize: function (event, $this) { 
            $(this).css({left:'inherit', top:'inherit'});
            if(manresize/*var set on manual trigger*/){$(this).trigger("manualresize");manresize=false;}
        }

答案 1 :(得分:0)

如果我理解正确,你只想要调整元素大小,那么试试吧:

$('#button').on('click', function(){
    $('.question-case-story').width(somevalue);
    $('.question-case-story').height($(window).height());
}