簡體   English   中英

Javascript-使用onclick的功能?

[英]Javascript - Function to use onclick?

我想創建一個函數,然后與onclick方法一起使用,例如:

one = document.getElementById("oneID");

然后,而不是為每個onclick():編寫函數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庫可以幫助解決這個問題,即普通JavaScript。

您需要傳遞一個函數作為引用,而不是調用它:

one.onclick = input;

在這種情況下,您將無法傳遞參數,但是您可以將this用作觸發事件的DOM元素的參考:

function input() {
    tempStack.push(parseFloat(this.value));
    viewTemp.value += this.value;
}

將函數視為普通對象,方法是:

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開發人員網絡真正的w3c網站會更好地解釋它。

這是一種使用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>

小提琴http : //jsfiddle.net/Lhq6t/

您的要求可以通過以下方式實現:

在您的腳本標簽中添加此方法:

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/

好的,所以只需創建一個帶有參數的函數,例如:

function setValue(input){
    tempStack.push(parseFloat(input.value));
    viewTemp.value += input.value;
}

然后在該元素的單擊上調用該函數,例如:

var one = document.getElementById("oneID");
one.click = setValue(one);

祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM