2012-06-12 75 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