我試圖通過.live()
jQuery方法附加一個簡單的焦點/模糊事件監聽器到我的輸入,但我注意到的是focus
事件沒有觸發,而blur
事件是。Javascript/jQuery:爲什麼焦點事件不會在輸入字段上觸發?
奇怪...希望你可能有一個爲什麼發生這種情況的想法。
下面是代碼:
function rowHighlight() {
var form = $('form.register'),
ele = {};
form.find('label').each(function(i) {
var link = this.htmlFor;
form.find('label[for='+link+'],input[name='+link+'],textarea[name='+link+']').wrapAll('<span class="row"/>');
});
ele.row = $('form > .row');
ele.inputs = ele.row.find('input');
$.each(ele.inputs, function(i) {
$(this).focus(function() {
console.log('hello'); // this will fire.
});
$(this).live('focus blur', function(e) {
console.log('current event type: '+e.type); // the focus on this will not fire!?
(e.type=='focus' ? console.log('focussed') : console.log('blurred'))
});
});
}
rowHighlight();
$(this).focus…
只是把它作爲一個調試的事情,除去它不會使對live
監聽工作focus
...
任何幫助,將不勝感激。
謝謝你停下來。
Jannis
非常感謝你,雖然'.live'仍然不起作用,改變'.live'爲'.bind'然而使它工作。 – Jannis 2010-09-16 00:19:58
'live()'在傳遞它應該作爲目標的選擇器時自動綁定事件處理程序,而不是特定的對象。看我的編輯。 – 2010-09-16 00:26:40
感謝Live vs Bind的加入!非常感激。 – Jannis 2010-09-16 00:52:23