只是想知道是否有一种方法可以添加自定义 jQuery 方法或类似方法以确保所有计算都四舍五入到最接近的整数?例如用于计算宽度等。
谢谢!
不,那是不可能的。
您可以做的最接近的事情是更改在jQuery方法中执行计算的方式。
您无法更改语言本身执行算术运算的方式。
JavaScript 语言中的运算符不能被覆盖。
例如,这是您将如何覆盖 jQuery 的.width
方法(不建议将其用于生产代码!)
$.fn.oldwidth = $.fn.width;
$.fn.width = function (elem) {
if(elem == null){ // no param, getter
return $.fn.oldwidth.call(this);
}
if (typeof elem === "string") { // 12px for example
var numPart = parseInt(elem); //get just the 12
var unitPart = elem.match(/[a-zA-Z]/g).join(""); //get the number part
return $.fn.oldwidth.call(this,Math.floor(numPart) + unitPart);
}
return $.fn.oldwidth.call(this,Math.floor(elem));
}
这会做:
$("#some").width("5.6em");
alert($("#some").width()); // Alerts 80 with the above code, 90 without.
我不知道您要进行哪种计算,但是如果是简单的重复操作,您可以执行一个处理操作并返回舍入结果的函数...
喜欢
function calculateSomething(operation){
// ???
return floor(result);
}
如果您将所有计算放在一个特定的类中,您可以将它们全局四舍五入
var Arithmetics = //class of all calc's
for(each element in arithmetics){
element = Math.round(element)
}