最近在使用jQuery的時候,遇到了一個問題,就是標簽的blur事件無效,我嘗試了很多方法,但都沒有解決這個問題,下面我將分享我的經驗。
<input id="testInput" value="" />
$('#testInput').blur(function(){
alert("blur");
});
首先,我嘗試在代碼中綁定blur事件,但是發現事件并沒有觸發,也沒有報錯。于是我嘗試添加以下代碼來取消輸入框的焦點:
$('input').blur(function(){
$(this).blur();
});
但是,在添加了這段代碼之后,我還是無法觸發blur事件。
接下來我嘗試添加以下代碼,將焦點轉移到另一個元素上:
$('input').blur(function(){
$(this).next().focus();
});
但是,這依然無法解決我遇到的問題。最后我發現,由于我的標簽是動態生成的,因此我需要改變綁定事件的方法:
$(document).on('blur', '#testInput', function(){
alert("blur");
});
這樣我就成功的觸發了blur事件,同時也解決了我的問題。