function suggest(baseUrl , data) { var wordInput = $("#userName"); wordInput.keyup(function(event) { alert(1); }//调用这个函数,弹出一个窗口,内有输入框id为userName, //第一次弹出窗口,在输入框内按一次键,弹出一次alert //关闭窗口在从新进入,在输入框内按两次键,弹出两次alert //如此递增 ,为什么啊 ,多谢 }
你是給文字方塊綁定的keyup,按鍵兩次當然彈兩下!你想要什麼效果?通常是要做判斷的,在按某個鍵後執行一個操作
問題描述錯了
//第一次彈出窗口,在輸入框內按一次鍵,彈出一次alert
//關閉視窗在從新進入,在輸入框內按兩次鍵,彈出兩次alert
//關閉視窗在從新進入,在輸入框內按兩次鍵,彈出三次alert
//如此遞增,為什麼啊,多謝
應該是重複綁定的問題,你這個方法是在彈出視窗後觸發的吧?是有特殊要求嗎?把他改成開始時觸發行嗎?那樣只綁定一次事件應該沒問題了
function suggest(baseUrl , data) { var wordInput = $("#userName"); var wordInputOffset = wordInput.offset() alert(2); wordInput.keyup(function(event) { alert(1); var myEvent = event || window.event; var autoNode = $("#auto"); }} //alert(2);这个alert很正常,所以应该不是你说的问题
keyup是指按鍵抬起,你按一下抬起一次,再按又抬起一次,所以就是這樣了,這是正常結果。如果這不是你的目的,請把你希望的結果說出來,我們可以給你意見。
綁定事件的程式碼位置問題,你把完整程式碼貼出來吧,一定是重複綁定了。或者這樣
wordInput.unbind('keyup').keyup(function(event)...
就是先解除先前綁定的事件,然後重新綁定
以上是jquery處理鍵盤keyup事件的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!