Javascript 返回大小的jquery ui可调整大小

Javascript 返回大小的jquery ui可调整大小,javascript,jquery,jquery-ui,jquery-plugins,jquery-resizable,Javascript,Jquery,Jquery Ui,Jquery Plugins,Jquery Resizable,我是jquery新手,我正在尝试使用resizeable。我可以让它工作良好,但似乎无法解决如何返回新的大小。我想将新的大小设置为php变量以保存在DB中。我不熟悉javascript和jquery,所以任何帮助都是很大的帮助 示例div: <div id="div"> <p>this is the div i want to retrieve demensions</p> <p>second paragraph</p>

我是jquery新手,我正在尝试使用resizeable。我可以让它工作良好,但似乎无法解决如何返回新的大小。我想将新的大小设置为php变量以保存在DB中。我不熟悉javascript和jquery,所以任何帮助都是很大的帮助

示例div:

<div id="div">
    <p>this is the div i want to retrieve demensions</p>

    <p>second paragraph</p>
</div>
要将维度写回数据库,您需要将值作为
表单的一部分或通过AJAX请求发回

示例div:

<div id="div">
    <p>this is the div i want to retrieve demensions</p>

    <p>second paragraph</p>
</div>

要将尺寸写回数据库,您需要将值作为
表单的一部分或通过AJAX请求发布回数据库

可调整大小的插件本身不提供获取尺寸的方法。我假设他们没有实现这一点,因为这只是同一个节点上的冗余方法,因为jquerycore中已经有这样做的方法

jQuery提供了几种方法来根据您想要做的事情来查找宽度和高度。纯宽度/高度方法获取css值。但是,很多时候使用outerWidth和outerHeight方法可能更有用,因为它们返回页面上元素的总计算大小,包括所有页边距、边框等

示例:

//Width/Height of just the element (as from css)
var w = $('.selector').width()
var h = $('.selector').height()

//Width/Height of total space the element takes up with formatting (includes border and margin)
var w = $('.selector').outerWidth()
var h = $('.selector').outerHeight()

//Width/Height of the space the content of the element takes up
var w = $('.selector').innerWidth()
var h = $('.selector').innerHeight()
编辑将这些方法应用于可调整大小的事件

可调整大小的插件提供了几个可绑定的事件:创建、启动、调整大小和停止。我们可以绑定一个函数,以便在初始化时或以后的任何时间调用这些事件。听起来,开始调整元素大小时触发start事件,停止调整元素大小时触发stop事件,每次调整元素大小时(每个像素)都会调用resize

初始化时绑定:

$('.selector').resizable({
    //Other options
    create : function(event,ui) {...},
    start : function(event,ui) {...},
    stop : function(event,ui) {...},
    resize : function(event,ui) {...}
});
或在以后的任何时候绑定

$('.selector').bind('resizecreate',function(event,ui) {...});
$('.selector').bind('resizestart',function(event,ui) {...});
$('.selector').bind('resizestop',function(event,ui) {...});
$('.selector').bind('resize',function(event,ui) {...});
现在,对于您的情况,我建议使用2个选项中的1个,或者绑定start和stop命令以获得原始和修改的大小,或者绑定以调整大小以实时处理该值

启动/停止模式示例

var startW = 0;
var startH = 0;

$('.selector').resizable({
    //Other options
    start : function(event,ui) {
        startW = $(this).outerWidth();
        startH = $(this).outerHeight();
    },
    stop : function(event,ui) {
        endW = $(this).outerWidth();
        endH = $(this).outerHeight();
        alert("width changed:"+ (endW-startW) + " -- Height changed:" + (endH-endW));
    }
});
移动到控制台时打印值的示例

$('.selector').resizable({
    //other options
    resize: function(event,ui) {
        console.log([$(this).outerWidth(),$(this).outerHeight()]);
    }
});

希望这有帮助

可调整大小的插件本身没有提供获取大小的方法。我假设他们没有实现这一点,因为这只是同一个节点上的冗余方法,因为jquerycore中已经有这样做的方法

jQuery提供了几种方法来根据您想要做的事情来查找宽度和高度。纯宽度/高度方法获取css值。但是,很多时候使用outerWidth和outerHeight方法可能更有用,因为它们返回页面上元素的总计算大小,包括所有页边距、边框等

示例:

//Width/Height of just the element (as from css)
var w = $('.selector').width()
var h = $('.selector').height()

//Width/Height of total space the element takes up with formatting (includes border and margin)
var w = $('.selector').outerWidth()
var h = $('.selector').outerHeight()

//Width/Height of the space the content of the element takes up
var w = $('.selector').innerWidth()
var h = $('.selector').innerHeight()
编辑将这些方法应用于可调整大小的事件

可调整大小的插件提供了几个可绑定的事件:创建、启动、调整大小和停止。我们可以绑定一个函数,以便在初始化时或以后的任何时间调用这些事件。听起来,开始调整元素大小时触发start事件,停止调整元素大小时触发stop事件,每次调整元素大小时(每个像素)都会调用resize

初始化时绑定:

$('.selector').resizable({
    //Other options
    create : function(event,ui) {...},
    start : function(event,ui) {...},
    stop : function(event,ui) {...},
    resize : function(event,ui) {...}
});
或在以后的任何时候绑定

$('.selector').bind('resizecreate',function(event,ui) {...});
$('.selector').bind('resizestart',function(event,ui) {...});
$('.selector').bind('resizestop',function(event,ui) {...});
$('.selector').bind('resize',function(event,ui) {...});
现在,对于您的情况,我建议使用2个选项中的1个,或者绑定start和stop命令以获得原始和修改的大小,或者绑定以调整大小以实时处理该值

启动/停止模式示例

var startW = 0;
var startH = 0;

$('.selector').resizable({
    //Other options
    start : function(event,ui) {
        startW = $(this).outerWidth();
        startH = $(this).outerHeight();
    },
    stop : function(event,ui) {
        endW = $(this).outerWidth();
        endH = $(this).outerHeight();
        alert("width changed:"+ (endW-startW) + " -- Height changed:" + (endH-endW));
    }
});
移动到控制台时打印值的示例

$('.selector').resizable({
    //other options
    resize: function(event,ui) {
        console.log([$(this).outerWidth(),$(this).outerHeight()]);
    }
});

希望这能有所帮助

在回答这些问题时,情况可能有所不同,但现在jQuery UI使获取事件和UI元素的信息变得非常容易。我强烈建议控制台记录ui变量,因为它提供了很多信息。不过,为了更好地回答您的问题:

$('.selector').resizable({
    stop: function (evt, ui) {
        console.log(ui.size);
    }
});
应生成具有高度和宽度属性的对象。这些是可调整大小项目的新高度和宽度

如果您想计算这些值的增量,您可以参考
ui.originalSize
以及其中的高度或宽度属性


希望这比其他答案更简洁一点

在回答这些问题时,情况可能有所不同,但现在jQuery UI可以很容易地获取有关事件和UI元素的信息。我强烈建议控制台记录ui变量,因为它提供了很多信息。不过,为了更好地回答您的问题:

$('.selector').resizable({
    stop: function (evt, ui) {
        console.log(ui.size);
    }
});
应生成具有高度和宽度属性的对象。这些是可调整大小项目的新高度和宽度

如果您想计算这些值的增量,您可以参考
ui.originalSize
以及其中的高度或宽度属性


希望这个答案比其他答案更简洁一些,这些答案可以为我提供起始宽度和高度,但我想要的是新的,有没有一个好方法可以在运行时响应它,可以在运行时调用它…特别是使用可调整大小的插件,你可以在需要的时候使用事件来获取它…例如,查看编辑,它可以为我提供开始宽度和高度,但我想要的是新的,有没有一种好的方法可以在运行时回显它可能只是在运行时调用它…特别是使用可调整大小的插件,你可以在需要时使用事件来获取它…查看编辑示例