2013-06-25 3 views
0

У меня есть несколько текстовых полей с тем же классом и вы хотите назначить метод для события focus для всех. Это не работает:назначить метод событию для нескольких элементов управления с помощью jquery

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

В Dev-инструментов Элементы управления класс „postal x-form-text x-form-field“, так бы, что сделать выше JQuery не работает?

ответ

3

Это должно работать -

$('.postal').on('focus',setLeft); 
+0

Спасибо! Это сработало сразу. Мой jquery очень ограничен: есть ли у вас какие-либо веб-ресурсы, которые я могу использовать для резки? – callisto

+0

http://learn.jquery.com/ –

+1

@callisto - у них отличная документация. например, если бы у вас был фокус в googled jquery, страница '.focus()' была бы вершиной. с экспериментальной точки зрения, селектор '.on()' может использоваться для любых событий ... 'onhover',' onclick' и т. д. вы можете даже привязывать несколько обработчиков в одном объявлении '.on()'! – PlantTheIdea

0

Использование JQuery:

$('.postal').on('focus',setLeft); 
0

Существует ярлык, а

$('.postal').focus(setLeft);

0

Ну, это основное.

При использовании jQuery вы можете назначить любой метод в callback.

Большинство времени, мы используем functions таким образом:

$('.postal').on('focus', function(){ /* Do something */ }); 

Но это справедливо:

$('.postal').on('focus', hello); 

function hello(){ alert('hello'); }; 

Так что, я думаю, что второй способ соответствует вашим требованиям, чтобы назначить метод многократного с теми же class.

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 соскабливался с каждой привязкой.

+0

Спасибо за это. Сейчас я нахожусь на уклоне. – callisto