0

我试图在您单击按钮时设置一个变量,并在您释放按钮时重置它:

    var outputEl    = document.getElementById('result');

var click1 = document.getElementById("Button1");
click1.addEventListener('click', function(){
    funarr('1');
});

var click2 = document.getElementById("Button2");
click2.addEventListener('click', function(){
    funarr('2');
});

function funarr(value){
    arrow = value ;
    outputEl.innerHTML  = '<b>Result:</b> ' + arrow;
}

我试过:

    function funarr(value){
    arrow = value ;
    outputEl.innerHTML  = '<b>Result:</b> ' + arrow;
    setTimeout(function(){arrow = 0 ;},100);
    outputEl.innerHTML  = '<b>Result:</b> ' + arrow;
}

但它不起作用,也不能解决我的问题,因为我只需要在释放按钮时重置变量,而不是在一段时间后

没有运气。我怎样才能做到这一点?

编辑:使用 onmouseup 和 onmousedown 解决

    var outputEl    = document.getElementById('result');

var click1 = document.getElementById("Button1");
click1.addEventListener('mousedown', function(){
    funarr('1');
});

click1.addEventListener('mouseup', function(){
    funarr('0');
});

function funarr(value){
    arrow = value ;
    outputEl.innerHTML  = '<b>Result:</b> ' + arrow;
}

非常感谢你!

4

2 回答 2

0

在 JavaScript 中,click事件是按下和释放鼠标按钮的组合。听起来您想mousedown在他们单击按钮时监听事件以及mouseup在释放按钮时监听事件。

于 2013-10-26T17:12:25.187 回答
0

使用 jQuery(在 vanilla js 中写的太多;)):

var outputEl = $('#result');

$('#Button1').mousedown(function() { funarr('1') });
$('#Button2').mousedown(function() { funarr('2') })
  .add('#Button1').mouseup(function() { funarr('0') });


function funarr(value){
    arrow = value ;
    outputEl.html('<b>Result:</b> ' + arrow);
}

?

于 2013-10-26T17:12:39.727 回答