首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

有没有js高手,帮小弟我看下小弟我这个代码是什么有关问题

2013-09-05 
有没有js高手,帮我看下我这个代码是什么问题?!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional

有没有js高手,帮我看下我这个代码是什么问题?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!--<html>-->
<head>
<script type="text/javascript" src="jquery-1.9.1.js"></script>
</head>
<body>
<textarea style="overflow-y:auto; height: 50px;">sdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfddddddddddddddddddddddddddddsdfsadfsdfsadfdddddddddddddddddddddddddddd</textarea>
<button id="add">Add Textarea</button>
<button id="currentHeight">Current Height</button>
<button id="realHeight">Real Height</button>
</body>
<script>
$(function() {
$("textarea").each(function() {
$textarea = $(this);
var realHeight = $textarea.get(0).scrollHeight*2.7;
alert(realHeight);
if(realHeight > 100) {
$textarea.css("overflow-y", "auto");
$textarea.height(100);
}
});
/*$("textarea").keyup(function() {
if($textarea.height() > 100) {
$textarea.css("overflow-y", "auto");
$textarea.height(100);
}
});*/

$("#add").click(function() {
var html = "<textarea style='overflow-y:auto; height: 50px;'></textarea>";
$("body").append(html);
});

$("#currentHeight").click(function() {
alert($("textarea:first").height());
});

$("#realHeight").click(function() {
alert($("textarea:first").get(0).scrollHeight);
});

$(document).on("keyup", "textarea", function() {
var $textarea = $(this);
var realHeight = $textarea.get(0).scrollHeight;

var currentHeight = $textarea.height();


if(realHeight > 100) {
$textarea.css("overflow-y", "auto");
} else {
$textarea.css("overflow-y", "visible");
}

if(realHeight > 100) {
$textarea.height(100);
} else {
if(realHeight > 50) {
$textarea.height($textarea.get(0).scrollHeight);
} else {
$textarea.height(50);
}
}
//alert($textarea.height());
$textarea.css("overflow-y", "auto");

});
});
</script>
</html>



这段代码是textarea自适应高度,我自己写的,但是,我一开始初始化的时候,弹出来的textarea真实的高度,和通过按钮获得textarea真实的高度不一样,而按钮获得的高度才是真正的高度,求解,这是怎么回事。 javascript js jquery
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

scrollHeight 是指内容里的高度,不是textarea本身的高度

是的,我就是要得到他的实际高度,但是刷新浏览器,第一次得到的高度却是不准确的,而通过按钮获取的高度确实他真实的高度,但是两种方式的代码是一样的,一直想不通这是怎么回事

我试是是一样的
 $textarea.get(0).scrollHeight*2.7 ,不会是 *2.7 你说不一样吧

不是,发帖的时候忘记把2.7去掉了,你去掉就知道不行了,在里面输入很多个字符创,让textarea出滚动条,完了之后刷新一下,这个时候会alert出来一个值,会发现和textarea真实的高度不一样

你是在IE下测试吧,scrollHeight 会根据内容变化,IE下刷新后赋值
window.onload=function(){
 alert($("textarea:first").get(0).scrollHeight);
},或者用 setTimeout 一下 

热点排行
Bad Request.