我计算宽高比,但应在旧值更改时更新

时间:2013-01-09 20:08:52

标签: jquery jcrop

我正在使用jCrop,我需要一个设定的宽高比。例如,如果有人在X文本框中输入“2”而在Y文本框中输入“2”,则宽高比应为1.

但是,如果我更改文本框上的值(例如3和1),jCrop应该获取新值。现在它只是初始化,不回头。

代码如下。 (我尝试了很多,但无法弄清楚。)

-JQUERY-
jQuery(function($){
   var numberX = $('#numberX').val();
   var numberY = $('#numberY').val();

   $('#jcrop_target').Jcrop({
      aspectRatio: ($(this).numberX / $(this).numberY),
   ... rest of the codes

-HTML-
<input type="text" id="numberX" name="numberX" value=""/>
<input type="text" id="numberY" name="numberY" value="" />

TLDR; 当我更改numberX和numberY文本框的值时,它应该反映到jCrop。 jCrop只保留init值。当文本框上的值发生变化时,应重新计算纵横比。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

将您的代码改为function()。然后使用jQuery,您可以在document.ready和更改时运行该功能(参见http://api.jquery.com/change/

例如,

function changenumbers(){
   var numberX = $('#numberX').val();
   var numberY = $('#numberY').val();

   $('#jcrop_target').Jcrop({
      aspectRatio: ($(this).numberX / $(this).numberY),
   /* ... rest of the code */
}
$document.ready(function(){
   changenumbers();
   $("#numberX").change(function(){ changenumbers(); }
   $("#numberY").change(function(){ changenumbers(); }
}