亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

單擊 Chrome 和 Edge 中的箭頭時,輸入[type=number] 不斷增加

單擊 Chrome 和 Edge 中的箭頭時,輸入[type=number] 不斷增加

呼啦一陣風 2023-11-12 15:02:00
我遇到以下問題:加載特定 jQuery 庫后,如果單擊數字輸入箭頭,輸入值會不斷增加(或減少),直到焦點移到輸入元素之外。將事件綁定input到元素顯示它不斷觸發,這讓我相信某些代碼一直element.value在循環中設置。但那并沒有發生。我已將問題歸結為調用event.preventDefault()一個mouseup活動。看:document.body.addEventListener('mouseup', (e) => {    e.preventDefault();});<input type="number">為什么會出現這種情況?
查看完整描述

2 回答

?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

我很難通過搜索導致這些無限增加的輸入的原因來查找信息。

只有在自己找到原因之后,我才發現了一個類似的錯誤,該錯誤是在阻止默認值時發生的mousemove。雖然,這樣的事情似乎不會再發生了。

看起來這是一個 Chrome(和 Edge)錯誤。實際上是默認行為,這在他所說的方式中是有意義的。我本人未能在任何地方找到這種標準行為的記錄。解決該問題的一種方法是停止將事件冒泡到文檔,

document.querySelector('input').addEventListener('mouseup',?(e)?=>?{
????e.stopPropagation();
});

另一個是,沒有阻止默認行為。


查看完整回答
反對 回復 2023-11-12
?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

以下問題與jQuery無關。問題是代碼正在做你想要它做的事情。代碼中<input type="number" />有2個事件。第一個是“mousedown”,第二個是“mouseup”。


你正在做的是cancelling the 2nd part, ie mouseup,如果你按下mousedown鼠標cancel,那么數字將:

  1. 如果你按向上箭頭繼續增加

  2. 如果你按下箭頭繼續減少

唯一令人驚訝的是,如果您編寫添加事件的代碼而不是添加事件input,那么這將具有完美的意義body,但無論如何似乎browser by default is increasing or decreasing number -- based on event-bubbling to body。

注意:下面復制了這個問題,但沒有添加 jQuery!

document.body.addEventListener('mouseup',?(e)?=>?{
??e.preventDefault();
});
<input?type="number">



查看完整回答
反對 回復 2023-11-12
  • 2 回答
  • 0 關注
  • 211 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號