使用 this.value 作为参数 onload?

using this.value as parameter onload?

<!DOCTYPE html>
<html onmouseup="end()">
<head>
    <meta charset="UTF-8">
</head>


<script>
var counter;
var count = 0;

window.onload=function()
{
var x=document.getElementsByClassName('banana')
var i;
for (i = 0; i < x.length; i++)
    {
        x[i].onmousedown = debounce(function()
        {
        start(this.className,this.value);  //////if i put '1' instead of this.value it works
        }, 550);
    }
}


function debounce(a, b)
{
    var timer; 
    return function()
    {
        clearTimeout(timer); 
        timer = setTimeout(function()
        {
            a(); 
        }, b); 
    };
}

function start(clicked_className,cha)
  {
    counter = setInterval(function()
    {
      add(clicked_className,cha);
      count++;
    },90);
  }
  function end()
  {
    clearInterval(counter);
  }

function add(clicked_className,cha)
{
window.document.numeri.outpu.value =
window.document.numeri.outpu.value + cha;


}

</script>

<body>
<form name="numeri">
<input type="text"name="outpu">
<input type="button"id="apple"class="banana"value=" Click & Hold  "onmouseleave="end()">
</form>
</body>

</html>

this.className,this.value 我想问题就在这里,因为如果我用“1”交换 this.value,它就可以工作。

在这种情况下,this.value and/or this.className 有什么问题?

还有可能有更优雅的方法来添加按钮按下的初始延迟,然后在迭代之间添加延迟?

在您的函数中 this 引用 window.onload 没有任何 value 的函数。我猜您想使用 x[i].value 而不是 this.value.