你好,我試圖檢測使用命名空間來聚焦元素。這是我的工作代碼:jQuery .on()在命名空間中不起作用,而不是在.live()中起作用
(function($){
searchBox = {
element: $('div#block-search-form input[name=search_block_form]'),
focus: function(){
this.element.live('focusin',function(){
console.log('in');
});
this.element.live('focusout', function(){
console.log('out');
});
}
}
$(document).ready(function(){
searchBox.focus();
});
})(jQuery);
我的問題是如何使它不使用.live()?
編輯
爲了使它工作,我不得不作出一個元素的功能,現在一切工作正常。當我沒有時,它沒有正確的上下文。 我的新代碼:
(function($){
searchBox = {
element: function(){return $('div#block-search-form input[name=search_block_form]')},
init: function(){
this.focus();
},
focus: function(){
var that = this;
that.element().on({
'focusin': function(){
/*code*/
},
'focusout': function(){
/*code*/
}
});
}
}
$(document).ready(function(){
searchBox.init();
});
})(jQuery);
['this.element.focusout()'](https://api.jquery.com/focusout/) – Liam
使用'。對() '作爲'live()'棄用於:1.7,刪除:1.9 –
您使用的是什麼版本的jQuery? –