我正在尝试根据当前是否在输入中提交文件来更改div的高度。
我的输入有一个id =“upload”
截至目前,我正在使用.change:
运行此功能$('#upload').change(function(){
$('div').css("height", "1000px");
});
当我上传文件时,这非常有效,但是当我删除文件时,输入会再次被更改,因此div的高度保持不变。所以,我需要一个可逆的解决方案并且可以双向工作。我已经尝试了几个其他功能,我检查了值,以及输入的长度,但我似乎无法得到任何有用的东西。
答案 0 :(得分:1)
根据您所说的内容,我认为这应该适合您。它会在更改后检查#upload元素的值的长度,如果它不大于0(因此为空),它会将div元素缩放回50 px(大胆地假设它是原始大小)。
$('#upload').change(function() {
if (jQuery(this).val().length > 0) {
$('div').css("height", "1000px");
} else {
$('div').css("height", "50px");
}
});
我把它放在一个小提琴里:https://jsfiddle.net/7b0hvo3u/
也可以首先检索div元素的原始高度,将其存储在某处,然后使用它而不是硬编码的“50px”。 这会使它看起来像这样:
var originalHeight;
$('document').ready(function() {
originalHeight = $('div').height();
});
$('#upload').change(function() {
if (jQuery(this).val().length > 0) {
$('div').css("height", "1000px");
} else {
$('div').css("height", originalHeight);
}
});
这种变化的小提琴在这里:https://jsfiddle.net/ywsthj2p/1/
希望这有所帮助,如果没有:请详细说明:)