給按鈕設置 mousedown 事件,並在其中 event.preventDefault() 就能夠了javascript
// html <input type="text" autofocus="autofocus"> <button>點擊我文本輸入框不會失去焦點</button> // javascript var btn = document.querySelector('button') btn.onmousedown = function(event) {event.preventDefault()}
要點擊按鈕,觸發按鈕的 click 事件,但又不想觸發 input 的 blur 事件。 這裏面的問題就在於,當咱們點擊按鈕的時候,文本框失焦,這是瀏覽器的默認事件。當你點擊按鈕的時候,會觸發按鈕的 mousedown 事件,mousedown 事件的默認行爲是使除了你點擊的對象以外的有焦點的對象失去焦點。因此只要在 mousedown 事件中阻止默認事件發生就能夠了!html