我有几个具有相同类的文本框,并希望为焦点事件分配一个方法。 这不起作用:
$('.postal').onfocus = setLeft();
在开发工具中,控件的类是“postal x-form-text x-form-field
”,这样会使上面的jquery不起作用吗?
答案 0 :(得分:3)
这应该有效 -
$('.postal').on('focus',setLeft);
答案 1 :(得分:1)
不要试图窃取任何风头,只是提供有关使用.on()
处理程序的其他信息。
您可以将其与其他几个处理程序结合使用,以整合代码并最大限度地减少DOM影响!例如:
$('.postal').on({
focus:setLeft, // predefined functions can be used as long as there are no parameters passed
click:function(){
alert('clicked');
},
blur:function(){
hideMe($(this)); // for functions that pass in parameters, encase them in separate functions
}
});
这是一种非常强大且有效的方式来利用.on()
,因为DOM只被抓取一次。这比使用.focus()
,.click()
和.blur()
的简写进行不同的绑定更好,这需要使用每个绑定来抓取DOM。
答案 2 :(得分:0)
使用jquery:
$('.postal').on('focus',setLeft);
答案 3 :(得分:0)
还有一个快捷方式
$('.postal').focus(setLeft);
答案 4 :(得分:0)
嗯,这是基本的。
使用callback
时,您可以在jQuery
中指定任何方法。
大多数情况下,我们以这种方式使用functions
:
$('.postal').on('focus', function(){ /* Do something */ });
但这也是有效的:
$('.postal').on('focus', hello);
function hello(){ alert('hello'); };
所以,我认为第二种方式符合您的要求,即为具有相同class
的多个控件分配方法。