2012-06-12 73 views
0

我使用jQuery UI创建了一个可重新使用的框,然后将值传递给一个文本框。值可以是CM或英寸。选择菜单所需的jQuery逻辑

我遇到的问题是,当您从unit_type框中选择“厘米”后拖动尺寸时,它会恢复为“英寸”。我想我只需要重新思考它的逻辑并将其全部重新映射。

任何人都可以帮助这个..?

代码是...

$(function() 
{ 
    $("#resizable").resizable({ 
     aspectRatio: 16/9, 
     maxWidth: $("#max_width").val(), 
     maxHeight: $("#max_height").val(), 
     resize: function() { 

      var widthInch = $("#resizable").width()/200; 
      var heightInch = $("#resizable").height()/200; 

      $("#unit_type").change(function() 
      { 
       var widthCM = $("#resizable").width()/200 * 2.54; 
       var heightCM = $("#resizable").height()/200 * 2.54; 

       $(".width").val(widthCM + '' + ' CM'); 
       $(".height").val(heightCM + '' + ' CM'); 
      }) 

      var widthCM = $("#resziable").width()/200 * 2.54; 
      var heightCM = $("#resizable").height()/200 * 2.54; 

      $(".width").val(widthInch + '' + ' Inches'); 
      $(".height").val(heightInch + '' + ' Inches'); 
     } 
    }); 
}) 

感谢

+0

很高兴看到这个运行的元素的HTML也很好。创建[jsFiddle](http://jsfiddle.net/)演示可能也很有用,所以人们可以看到你已经有了什么。 –

+0

@AnthonyGrist公平点 - 但jQuery UI不会加载它。我可以放入HTML,但不是问题 – StuBlackett

+0

即使在“添加资源”面板中,您是否可以不链接它? –

回答

1

的问题出在哪里,你要计算的大小。最好的解决方案是将其拉出到一个新的函数中,然后在调整盒子大小或改变单位时调用该函数。像这样的东西应该工作。 (你可能会修改它以适合你的确切标记,因为我做了一些假设。)

$(function() 
{ 
    $("#resizable").resizable({ 
     aspectRatio: 16/9, 
     maxWidth: $("#max_width").val(), 
     maxHeight: $("#max_height").val(), 
     resize: updateSize 
    }); 
}) 

$("#unit_type").change(updateSize); 

function updateSize() { 
    unit = $("#unit_type").val(); 
    if(unit == "in") { 
      var widthInch = $("#resizable").width()/200; 
      var heightInch = $("#resizable").height()/200; 

      $(".width").val(widthInch + '' + ' Inches'); 
      $(".height").val(heightInch + '' + ' Inches'); 
    } else if(unit == "cm") { 
      var widthCM = $("#resizable").width()/200 * 2.54; 
      var heightCM = $("#resizable").height()/200 * 2.54; 

      $(".width").val(widthCM + '' + ' CM'); 
      $(".height").val(heightCM + '' + ' CM'); 
    } 
} 
+0

这似乎工作的一种享受,谢谢你的 – StuBlackett