2011-08-29 3 views
0

en essayant de faire de cette boîte rester une largeur à 150px, mais comment puis-je obtenir un texte qui est retrivé qui est plus long que ce retour du texte à la ligne suivante au lieu d'étendre la div.ligne retour en javascript

 <div id="page" style="position:absolute; float:right; top:500px; right:0px; background-color:#F5F5F5; color: #F6221D; font-size:12px; width:150;"> 
     <h2>ShoutOut</h2> 

     <form method="post" action="shout.php"> 
      <strong>Message:</strong> 
      <input type="text" id="message" name="message" class="message" /><input type="submit" id="submit" value="Submit" /> 
     </form> 

     <div id="shout" style="padding:0 10px 0; width:150; height:170px;; overflow-y:auto;"> 

     </div> 
    </div> 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript"> 
$(function() { 

    //populating shoutbox the first time 
    refresh_shoutbox(); 
    // recurring refresh every 15 seconds 
    setInterval("refresh_shoutbox()", 15000); 

    $("#submit").click(function() { 
     // getting the values that user typed 
     var name = $("#name").val(); 
     var message = $("#message").val(); 
     // forming the queryString 
     var data   = 'name='+ name +'&message='+ message; 

     // ajax call 
     $.ajax({ 
      type: "POST", 
      url: "shout.php", 
      data: data, 
      success: function(html){ // this happen after we get result 
       $("#shout").slideToggle(500, function(){ 
        $(this).html(html).slideToggle(500); 
        $("#message").val(""); 
       }); 
      } 
     });  
     return false; 
    }); 
}); 

function refresh_shoutbox() { 
    var data = 'refresh=1'; 

    $.ajax({ 
      type: "POST", 
      url: "shout.php", 
      data: data, 
      success: function(html){ // this happen after we get result 
       $("#shout").html(html); 
      } 
     }); 
} 

Répondre

1

Essayez d'ajouter ce style à la DIV:

word-wrap:break-word; 
+0

fonctionne bien pour les mots pense que c'était ce que je cherchais. Y a-t-il quelque chose comme ça pour les lettres, donc si c'est une ligne continue de texte, par ex. difjaslkdfjsadlkfjasdlkfjsdalkfjasdlkfjsaldkfjslkdfjsldfkjsl – John

+0

alors il enveloppera sur la ligne suivante? – John

+0

Je pense que cela fait ça, n'est-ce pas? Il est écrit "break-word", donc je suppose qu'il va casser un long mot pour l'envelopper. –

2

Il y a une erreur dans votre CSS:

width:150; 

devrait être:

width:150px; 
+0

oh woops. nouveau, il était en désordre:/merci – John

+0

@George Cummins: Ne pas spécifier les pixels provoquent ce comportement? Si je comprends bien, vous n'avez plus besoin de déclarer la taille en pixels. Vous avez peut-être raison, mais je suis curieux de connaître la raison d'être de votre réponse. –

+0

@ James Johnson: L'OP a dit "im essayant de faire que cette boîte reste une largeur à 150px" donc une spécification de largeur de pixel est la bonne réponse. En outre, [selon W3.org] (http://www.w3.org/wiki/CSS/Properties/width), les unités doivent être spécifiées lors de l'utilisation d'une longueur. –