Javascript jQuery-仅针对一个句柄可调整大小的纵横比

Javascript jQuery-仅针对一个句柄可调整大小的纵横比,javascript,jquery,jquery-ui,resize,jquery-ui-resizable,Javascript,Jquery,Jquery Ui,Resize,Jquery Ui Resizable,我只想从一个句柄保护纵横比。我试图用这段代码运行它,但它对我没有帮助。你有什么解决办法吗 $( "#resizable").resizable({ handles: 'se,e,w', aspectRatio: true, start: function(e,ui) { if (jQuery(e.originalTarget).hasClass("ui-resizable-se")) { aspectRatio: false; }

我只想从一个句柄保护纵横比。我试图用这段代码运行它,但它对我没有帮助。你有什么解决办法吗

  $( "#resizable").resizable({
   handles: 'se,e,w',
   aspectRatio: true,
    start: function(e,ui) {
      if (jQuery(e.originalTarget).hasClass("ui-resizable-se")) {
         aspectRatio: false;
      }
    }
      });
特别感谢所有的解决方案


编辑:问题解决了。您可以在这里看到解决方案:

我认为您应该提供纵横比,而不是
true

aspectRatio: 16 / 9 

提及


我认为您应该提供纵横比,而不是
true

aspectRatio: 16 / 9 

提及


关于这个bug,有很多问题没有答案

以下是适合您的解决方案:)


var changedRatio=“DK”//DK->不要保留
var nowResizing=“否”;
$(函数(){
$(“#可调整大小”)。可调整大小({
开始:功能(事件、用户界面){
nowResizing=“是”;
},
停止:功能(事件、用户界面){
nowResizing=“否”;
}
});
$(document).on('mouseenter','.ui-resizeable-e',function(){
if(changedRatio!=“DK”){
如果(正在调整大小!=“是”){
var targetDiv=$(this.parent().attr(“id”);
dontKeep(targetDiv);
}
}
});
$(document).on('mouseenter','.ui可调整大小se',function(){
if(changedRatio!=“K”){
如果(正在调整大小!=“是”){
var targetDiv=$(this.parent().attr(“id”);
保留(targetDiv);
}
}
});
$(document).on('mouseenter','.ui-resizeable-s',function(){
if(changedRatio!=“DK”){
如果(正在调整大小!=“是”){
var targetDiv=$(this.parent().attr(“id”);
dontKeep(targetDiv);
}
}
});
});
函数dontKeep(val){
$(“#”+val).可调整大小(“销毁”);
$(“#”+val)。可调整大小({
方面:错误,
开始:功能(事件、用户界面){
nowResizing=“是”;
},
停止:功能(事件、用户界面){
nowResizing=“否”;
}
});
changedRatio=“DK”;
}
功能保持(val){
$(“#”+val).可调整大小(“销毁”);
$(“#”+val)。可调整大小({
是的,
开始:功能(事件、用户界面){
nowResizing=“是”;
},
停止:功能(事件、用户界面){
nowResizing=“否”;
}
});
changedRatio=“K”;
}
可调整大小

关于这个bug,有许多问题没有答案

以下是适合您的解决方案:)


var changedRatio=“DK”//DK->不要保留
var nowResizing=“否”;
$(函数(){
$(“#可调整大小”)。可调整大小({
开始:功能(事件、用户界面){
nowResizing=“是”;
},
停止:功能(事件、用户界面){
nowResizing=“否”;
}
});
$(document).on('mouseenter','.ui-resizeable-e',function(){
if(changedRatio!=“DK”){
如果(正在调整大小!=“是”){
var targetDiv=$(this.parent().attr(“id”);
dontKeep(targetDiv);
}
}
});
$(document).on('mouseenter','.ui可调整大小se',function(){
if(changedRatio!=“K”){
如果(正在调整大小!=“是”){
var targetDiv=$(this.parent().attr(“id”);
保留(targetDiv);
}
}
});
$(document).on('mouseenter','.ui-resizeable-s',function(){
if(changedRatio!=“DK”){
如果(正在调整大小!=“是”){
var targetDiv=$(this.parent().attr(“id”);
dontKeep(targetDiv);
}
}
});
});
函数dontKeep(val){
$(“#”+val).可调整大小(“销毁”);
$(“#”+val)。可调整大小({
方面:错误,
开始:功能(事件、用户界面){
nowResizing=“是”;
},
停止:功能(事件、用户界面){
nowResizing=“否”;
}
});
changedRatio=“DK”;
}
功能保持(val){
$(“#”+val).可调整大小(“销毁”);
$(“#”+val)。可调整大小({
是的,
开始:功能(事件、用户界面){
nowResizing=“是”;
},
停止:功能(事件、用户界面){
nowResizing=“否”;
}
});
changedRatio=“K”;
}
可调整大小

一个对我有效的简单解决方案

var is_se = ($(this).data('uiResizable').axis == "se");
$(this).resizable( "option", "aspectRatio", is_se ).data('uiResizable')._aspectRatio = is_se;

一个对我有效的简单解决方案

var is_se = ($(this).data('uiResizable').axis == "se");
$(this).resizable( "option", "aspectRatio", is_se ).data('uiResizable')._aspectRatio = is_se;

一个对我有用的微小变化,可能是因为jQuery的更新版本。四个角的手柄将保持纵横比,而侧面的手柄则不会

$elements.resizable({
  handles: "all",

  start: function(event, ui) {
    var handle = $(this).data('ui-resizable').axis;

    // We should maintain the aspect ratio for corners, not for sides
    var maintain_aspect_ratio = (["n", "e", "s", "w"].indexOf(handle) == -1);

    $(this).resizable( "option", "aspectRatio", maintain_aspect_ratio )
      .data('ui-resizable')
      ._aspectRatio = maintain_aspect_ratio;
  }, 

  ...

一个对我有用的微小变化,可能是因为jQuery的更新版本。四个角的手柄将保持纵横比,而侧面的手柄则不会

$elements.resizable({
  handles: "all",

  start: function(event, ui) {
    var handle = $(this).data('ui-resizable').axis;

    // We should maintain the aspect ratio for corners, not for sides
    var maintain_aspect_ratio = (["n", "e", "s", "w"].indexOf(handle) == -1);

    $(this).resizable( "option", "aspectRatio", maintain_aspect_ratio )
      .data('ui-resizable')
      ._aspectRatio = maintain_aspect_ratio;
  }, 

  ...

不,aspectRatio有两个选项,可以使用数字或布尔值。事实上可以。他们的跟踪系统在初始化后更改纵横比方面仍然存在许多漏洞。尝试一些创造性的方法在初始化时设置纵横比,或者如果您想动态更改纵横比,您可以销毁并重新初始化它。我无法创建为我运行的东西,这就是为什么我请其他人帮助我的原因。@Adam:我可以重新编辑我的答案以获得更简单的解决方案。我们在这里指导您,澄清您的问题,并提供代码示例,而不是免费编写整个场景。如果你想让别人为你编码,你可以访问elance.com。无论如何,我不想让任何人为我编码整个场景。我只是想看到更清晰的答案,帮助我解决问题。不,aspectRatio有两个选项,你可以使用数字或布尔值。是的,事实上你可以。他们的跟踪系统在初始化后更改纵横比方面仍然存在许多漏洞。尝试一些创造性的方法在初始化时设置纵横比,或者如果您想动态更改纵横比,您可以销毁并重新初始化它。我无法创建为我运行的东西,这就是为什么我请其他人帮助我的原因。@Adam:我可以重新编辑我的答案以获得更简单的解决方案。我们是