2010-10-25 4 views
0

J'ai une question javascript/jquery. J'ai une configuration de boîte de dialogue jquery personnalisée dans mon projet.Modifier dynamiquement la taille d'une boîte de dialogue javascript/jquery à la taille d'une image

Je l'ai mis en place avec un div et un tag d'image. L'image est remplie avec un lien de téléchargement.

<'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'> 

C'est la configuration pour la boîte elle-même. Voici le javascript que je dois remplir la boîte avec l'image en fonction du lien envoyé par une classe

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

Cela fonctionne bien et montre la boîte de dialogue avec l'image en elle. Cependant, je veux vraiment pouvoir dimensionner cette boîte de dialogue/div. Comment puis-je changer cela en fonction de la taille de l'image? J'ai essayé

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; 
} 

La fonction ci-dessus, lorsque mis en œuvre, a été ajouté avant l'appel showDialog dans la fonction viewImage. Cela ne fonctionne pas correctement. Est-ce que je manque quelque chose?

+0

Votre fonction changeSize() est-elle dans un fichier javascript externe? (Pas en ligne sur la page ou dans l'en-tête) – Adrian

+0

c'est dans la même page. la fonction est directement située sous la fonction viewImage – Tom

+0

Vérifiez ce post de stackoverflow il semble que le problème est quelque peu lié: http://stackoverflow.com/questions/318630/get-real-image-width-and-height-with-javascript -in-safari-chrome – Adrian

Répondre

1

Je ne suis pas un gars ASP.NET mais jQuery a width() et height()méthodes pas propriétés comme vous utilisez dans votre code. Vous pouvez essayer ceci:

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); 
} 
Questions connexes