如何参数传递给javascript函数
问题描述:
我必须要通过放慢参数的validateNum javascript函数(例如NUM1,NUM2)如何参数传递给javascript函数
if (num1.attachEvent) {
num1.attachEvent("onkeypress", validateNum);
}
如何传递的attachEvent。我可以获取代码示例吗?
答
除了SLaks' answer,在ECMAScript的第5版实现,你可以使用bind
方法:
num1.attachEvent("onkeypress", validateNum.bind(null, num1, num2));
在实现不支持方法,您可以使用Prototype JS框架或只是将此方法添加到此代码片段的函数原型中:
if (!('bind' in Function.prototype)) {
Function.prototype.bind= function(owner) {
var that= this;
var args= Array.prototype.slice.call(arguments, 1);
return function() {
return that.apply(owner,
args.length===0? arguments : arguments.length===0? args :
args.concat(Array.prototype.slice.call(arguments, 0))
);
};
};
}
答
Finnaly我得到解决方案来传递'this'作为参数。 如果有人在这里得到搜索这个(KKKK)....
<input type="checkbox" name="ch_aceito" id="ch-aceito" value="1" />
<script type="text/javascript">
"use strict";
var el = document.getElementById("ch-aceito");
function isIE() {
var myNav = navigator.userAgent.toLowerCase();
return (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : false;
}
//alert(isIE());
if (document.addEventListener) {
//console.log('here');
el.addEventListener("click", getPost, false);
} else {
el.attachEvent("onclick", function() {
getPost(el);
});
}
function getPost(el){
if(isIE() && isIE() <= 8){
alert(el.value);
} else {
alert(this.value);
}
}
</script>
我从这里得到isIE:
是否'validateNum'使用'event'对象? – SLaks 2010-04-18 19:40:43