2010-10-25 120 views
0

我有一個javascript/jquery問題。動態地將javascript/jquery對話框的大小更改爲圖像的大小

我在我的項目中有一個自定義的jquery對話框設置。我用一個div和一個圖片標籤來設置它。該圖像使用文檔下載鏈接進行填充。

<'custom jquery dialog' runat="server" ID="dialogView" AutoOpen="false" CloseOnEscape="true" Modal="true" Title="" Visible="true" > 
    <div runat="sever" id="imageContainer"> 
     <img src="" alt="Image" runat="server" id="theImage" /> 
    </div> 
</'custom jquery dialog'> 

這是盒子本身的設置。這裏是JavaScript我要填充的包裝盒圖像取決於從類

function viewImage(link){ 
    $('#<%= this.theImage.ClientID %>').attr('src', link);\ 
    showDialog(<%= this.dialogView.ClientID %>); 
} 

這工作得很好,並顯示在它的圖像對話框中發送的鏈接。不過,我真的想要能夠調整這個對話框/ div的大小。我怎樣才能根據圖像的大小來改變它?我試過這個

function changeSize(){ 
    var imageHeight = $('#<%= this.theImage.ClientID %>').height; 
    var imageWidth = $('#<%= this.theImage.ClientID %>').width; 
    $('#<%= this.dialogView.ClientID %>').height = imageHeight; 
    $('#<%= this.dialogView.ClientID %>').width = imageWidth; 
    $('#<%= this.imageContainer.ClientID %>').height = imageHeight; 
    $('#<%= this.imageContainer.ClientID %>').width = imagewidth; 
} 

上面的函數實現時,在viewImage函數中的showDialog調用之前添加了。這不正確。我錯過了什麼嗎?

+0

你的changeSize()函數是否在外部javascript文件中? (不在網頁或標題中內嵌) – Adrian 2010-10-25 17:23:06

+0

它位於同一頁面中。該函數直接位於viewImage函數下面 – Tom 2010-10-25 17:24:16

+0

看看這個stackoverflow帖子看起來問題有點相關:http://stackoverflow.com/questions/318630/get-real-image-width-and-height-with-javascript -in野生動物園鉻 – Adrian 2010-10-25 17:29:54

回答

1

我不是一個ASP.NET的傢伙,但像你使用你的代碼jQuery有width()height()方法性能。你可以試試這個:

function changeSize(){ 
    var imageHeight = $('#<%= this.theImage.ClientID %>').height(); 
    var imageWidth = $('#<%= this.theImage.ClientID %>').width(); 
    $('#<%= this.dialogView.ClientID %>').height(imageHeight); 
    $('#<%= this.dialogView.ClientID %>').width(imageWidth); 
    $('#<%= this.imageContainer.ClientID %>').height(imageHeight); 
    $('#<%= this.imageContainer.ClientID %>').width(imagewidth); 
}