2 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
我很難通過搜索導(dǎo)致這些無限增加的輸入的原因來查找信息。
只有在自己找到原因之后,我才發(fā)現(xiàn)了一個(gè)類似的錯(cuò)誤,該錯(cuò)誤是在阻止默認(rèn)值時(shí)發(fā)生的mousemove
。雖然,這樣的事情似乎不會(huì)再發(fā)生了。
看起來這是一個(gè) Chrome(和 Edge)錯(cuò)誤。實(shí)際上是默認(rèn)行為,這在他所說的方式中是有意義的。我本人未能在任何地方找到這種標(biāo)準(zhǔn)行為的記錄。解決該問題的一種方法是停止將事件冒泡到文檔,
document.querySelector('input').addEventListener('mouseup',?(e)?=>?{ ????e.stopPropagation(); });
另一個(gè)是,沒有阻止默認(rèn)行為。

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊
以下問題與jQuery無關(guān)。問題是代碼正在做你想要它做的事情。代碼中<input type="number" />
有2個(gè)事件。第一個(gè)是“mousedown”,第二個(gè)是“mouseup”。
你正在做的是cancelling the 2nd part, ie mouseup
,如果你按下mousedown
鼠標(biāo)cancel
,那么數(shù)字將:
如果你按向上箭頭繼續(xù)增加
如果你按下箭頭繼續(xù)減少
唯一令人驚訝的是,如果您編寫添加事件的代碼而不是添加事件input
,那么這將具有完美的意義body
,但無論如何似乎browser by default is increasing or decreasing number -- based on event-bubbling to body
。
注意:下面復(fù)制了這個(gè)問題,但沒有添加 jQuery!
document.body.addEventListener('mouseup',?(e)?=>?{ ??e.preventDefault(); });
<input?type="number">
添加回答
舉報(bào)