使用jquery为多个控件的事件赋值方法

时间:2013-06-25 15:14:29

标签: jquery client-side

我有几个具有相同类的文本框,并希望为焦点事件分配一个方法。 这不起作用:

$('.postal').onfocus = setLeft();

在开发工具中,控件的类是“postal x-form-text x-form-field”,这样会使上面的jquery不起作用吗?

5 个答案:

答案 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的多个控件分配方法。