我试图使用jquery设置我的搜索栏的布局。即尝试通过使用调整大小功能来设置边距和填充作为屏幕大小更改。但不知道为什么只有在函数中定义变量时才起作用。在resize函数中再次定义变量会使代码看起来很难看,我相信有更好的方法来做到这一点。我在哪里定义我的变量出错?为什么我的函数无法访问外部定义的变量
<script>
$(document).ready(function(){
var inputList = $("#keysrch").width(),
$windwid = $(window).width(),
$srhwrap = $("#srh-wrap").width(),
$ulwidth = $("#keysrch").width()+$("#dropdwnopt").width()+$("#srh").width(),
$paddingL = Math.round($srhwrap-$ulwidth)/4,
$windwid_left_margin = ($windwid-$srhwrap)/2;
$("#srhbarinput").css({"width":inputList});
$("#srhbar_unlist").css({"padding-left":$paddingL});
$("#srh-wrap").css({"margin-left":$windwid_left_margin});
$(window).resize(function(){
var inputListchange = $("#keysrch").width(),
kysrhwidth = inputListchange;
$("#srhbarinput").css({"width":kysrhwidth});
$("#srhbar_unlist").css({"padding-left":$paddingL});
$("#srh-wrap").css({"margin-left":$windwid_left_margin});
console.log("Padding:"+$windwid_left_margin);
});
});
</script>
您是否在每次调整窗口大小时尝试更新变量?您将需要在函数内分配它们,以便每次触发事件时都将它们重置。 –
这就是函数的工作原理,它的术语是'范围'。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions –