qq_唔叫咩_0
2018-05-06 22:41:55
<form action="" method="">???????? <input type="text" id="txt" />???????? <input type="radio" id="rad" />???????? <input type="checkbox" id="cBox" />???????? <input type="button" value="button" id="btn" /></form><script type="text/javascript">? ? ???? var oTxt=document.getElementById("txt");???????? var oBtn=document.getElementById("btn");???????? oBtn.onclick = function(){ oTxt.focus(); };???????? oTxt.onfocus=function(){???????? alert("我獲得焦點了");???????? }; </script>
3 回答

碼農2號
TA貢獻151條經驗 獲得超48個贊
因為你點擊確定后,焦點還是沒變,又觸發了一次,往復循環。調試的話用console吧,網頁需要的話,彈出一個提示也不錯。非要用alert的話,立個flag啊,進入函數時候,判斷flag值,flag==0時候flag==1,flag==1時候不執行函數后面的就行了。

pardon110
TA貢獻1038條經驗 獲得超227個贊
基礎知識:
onclick,onfocus 事件句柄? 前者鼠標點擊某個對象產生事件,后者元素獲得焦點后執行事件
obj.focus()? 給指定的元素設置焦點 (注只有能夠響應用戶操作額元素才可以設置焦點,input是其中之一)
分析:1.input文本類型獲取焦點,出現彈窗? 2.點擊btn,會給文本類型input獲取焦點。
所以明了:點擊->焦點獲取->彈窗出現? 由于你點擊之后,并沒有提供后續的解除焦點在input:text上的事件綁定,所以彈窗一直存在。你這種情況,就好像開了一輛沒有剎車器的車,只要開始了就停不下來。

Gotta
TA貢獻53條經驗 獲得超16個贊
我猜是這樣…… 當你點擊alert的確定的時候……焦點會轉到確定按鈕上,alert消失后……焦點又回到了Input上,,所以再次觸發onfocus事件……
都是猜的。。。。沒有科學依據
添加回答
舉報
0/150
提交
取消