我已经编写了代码来检查文本区域向下滚动。 Mcode 在 FF4 中工作正常,但在 Chrome 中不行。
var psconsole = $('#tos');
//psconsole.scrollTop(psconsole[0].scrollHeight - psconsole.height());
psconsole.scroll(function(){
var acutalHight = psconsole[0].scrollHeight - psconsole.height();
var scrolHight = psconsole[0].scrollTop ;
console.log("scrolHight:" + scrolHight + "<<<<>>>>>"+ "acutalHight:" +acutalHight);
if(scrolHight+10 >= acutalHight){
$("#btnSignup").attr("disabled", false);
}else{
$("#btnSignup").attr("disabled", true);
}
});
如果条件 >=
在 Chrome 中不起作用
滚动时 scrollHight 值和 acutalHeight 值如下
scrolHight:2627<<<<>>>>>acutalHight:2696
scrolHight:2639<<<<>>>>>acutalHight:2696
scrolHight:2651<<<<>>>>>acutalHight:2696
scrolHight:2675<<<<>>>>>acutalHight:2696
scrolHight:2687<<<<>>>>>acutalHight:2696
scrolHight:2696<<<<>>>>>acutalHight:2696
在 Chrome 中我得到的滚动值如下
doSignUp:179scrolHight:1862<<<<>>>>>acutalHight:2686
doSignUp:179scrolHight:2128<<<<>>>>>acutalHight:2686
doSignUp:179scrolHight:2394<<<<>>>>>acutalHight:2686
doSignUp:179scrolHight:2660<<<<>>>>>acutalHight:2686
doSignUp:179scrolHight:2670<<<<>>>>>acutalHight:2686
doSignUp:179scrolHight:2682<<<<>>>>>acutalHight:2686
我认为问题是 chrome 没有计算文本区域的高度,直到最后 textarea 的末尾有一些拖动图标为 4px.... chrome 没有计算这些,但 FF4 做了。而且它在 IE9 中也不起作用
最佳答案
您需要使用 .prop()
而不是 .attr()
,或者,如果您的旧 jQuery 版本不支持 .prop()
,使用 .removeAttr('disabled')
重新启用按钮..
哦,你的变量名称中有拼写错误 - 它们应该是 scrollHeight
和 actualHeight
。
关于javascript - `>=` 条件在 Chrome 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6244843/