我试图获得浏览器窗口宽度的结果并尝试将数学和条件的结果放在变量中,这是代码
var MyWidth = 1900;
var MyHeight = 900;
var height = $(window).height();
var width = $(window).width();
var AutoW = function () {
if ( (MyWidth / width).toFixed(2) > 0.95 )
return 1;
if ( (MyWidth / width).toFixed(2) < 1.05 )
return 1;
else return (MyWidth / width).toFixed(2);
};
alert(AutoW);
问题是我不知道分配给变量的函数的正确语法或结构
对此进行编码的正确方法是什么?
答案 0 :(得分:2)
答案 1 :(得分:1)
var AutoW = function () {
// don't calculate ratio 3 times! Calculate it once
var ratio = (MyWidth / width).toFixed(2);
if (ratio > 0.95)
return 1;
if (ratio < 1.05)
return 1;
else return ratio;
};
// alert(AutoW); - this was a problem, AutoW is a function, not a variable
// so, you should call it
alert(AutoW());
答案 2 :(得分:1)
<script>
var MyWidth = 1900;
var MyHeight = 900;
var height = $(window).height();
var width = $(window).width();
var AutoW = function () {
if ((MyWidth / width).toFixed(2) > 0.95)
return 1;
if ((MyWidth / width).toFixed(2) < 1.05)
return 1;
else return (MyWidth / width).toFixed(2);
};
var val = AutoW();
alert(val)
</script>
答案 3 :(得分:1)
你应该这样试试:
(function(){
var MyWidth = 1900,
MyHeight = 900,
height = $(window).height(),
width = $(window).width(),
result;
var AutoW = function () {
var rel = (MyWidth / width).toFixed(2);
return ( ( rel > 0.95 ) && ( rel < 1.05 )) ? 1 : rel;
};
result = AutoW();
alert(result);
})();
但是请记住你写的函数总是返回1,这就是我为(&amp;&amp;)条件更改它以使其成为过滤器的原因。
如果你提醒功能,你将返回整个功能。你必须将函数“()”的强制转换为一个变量,以便返回它。
var result = f_name();
请记住,尽量不要使用全局变量,将所有内容包装在函数中。
你应该把{}放在if之后,并缓存你多次使用的值,比如我将“(MyWidth / width).toFixed(2)”缓存到rel。
我使用的sintax而不是if&gt;&gt; (条件)? (如果匹配则返回):(返回其他);