我想创建一个函数,然后使用onclick
方法,例如:
one = document.getElementById("oneID");
然后代替为每个onclick():
one.onclick = function(x) {
tempStack.push(parseFloat(one.value));
viewTemp.value += one.value;
}
我想使用单一功能:
one.click = input(one);
但是我不确定如何以正确的方式做到这一点,例如下面我试过的,不起作用:
var input = function(x) {
tempStack.push(parseFloat(x.value));
viewTemp.value += x.value;
}
最后,没有外部JavaScript库来帮助解决这个问题,即vanilla JavaScript。
答案 0 :(得分:2)
您需要传递一个函数作为参考,而不是调用它:
one.onclick = input;
在这种情况下,您将无法传递参数,但您可以使用this
作为触发事件的DOM元素的参考:
function input() {
tempStack.push(parseFloat(this.value));
viewTemp.value += this.value;
}
答案 1 :(得分:0)
将函数视为普通对象,所以方法是:
function input (event) {
// Process the event...
// event is my event object
// this is the object which trigger the event
// event.target is my button
}
on.onclick = input;
您必须将input
函数指定为普通变量。
函数input
将接收一个事件对象作为参数。您也可以参考点击this
的按钮。
也许mozilla developer network或the real w3c site会更好地解释它。
答案 2 :(得分:0)
这是一个使用JavaScript .addEventListener()
的方法,如上所述,使用this
传递DOM节点元素以在inputFunction
中使用。
<input type="text" value="64.23" id="bt" />
<script>
function inputFunction( x ) {
console.log( x.value ); //Console Logs 64.23
}
var bt = document.getElementById("bt");
bt.addEventListener( 'click',
function(){
inputFunction( this )
}, false );
</script>
答案 3 :(得分:0)
您的要求可以通过以下方式实现:
在脚本代码中添加此方法:
function input(x) {
/*tempStack.push(parseFloat(x.value));
viewTemp.value += x.value;*/
alert(x.id);
}
然后调用此方法onClick按钮/锚点的事件,如:
<input type="button" id="oneID" value="oneID" onClick="input(this);"/>
<input type="button" id="twoID" value="twoID" onClick="input(this);"/>
<a href="#" id="threeID" onClick="input(this);">threeID</a>
参见工作示例:http://jsfiddle.net/Avd5U/1/
答案 4 :(得分:-2)
好的,所以只需创建一个带有参数的函数,如:
function setValue(input){
tempStack.push(parseFloat(input.value));
viewTemp.value += input.value;
}
然后点击该元素调用该函数,如:
var one = document.getElementById("oneID");
one.click = setValue(one);
祝你好运!