2015-05-23 2 views
0

Я пытаюсь получить комбинацию onblur/onfocus, работающую для пары текстовых полей, которые я выбираю через класс в jquery. Я не получаю никаких ошибок при отладке, но функция размытия никогда не называется. Когда отладка моей точки останова в функции размытия не ударяется.jquery onblur not firing

$(document).ready(function() { 
    var row = $(this).closest('tr'); 
    $('.editClass').click(function() { 
     var editBoxes = $(row).find('.editClass'); 
     var focus = 0; 
     $(editBoxes).focus(function() { focus++ }); 
     $(editBoxes).blur(function() { 
      focus--; 
      setTimeout(function() { 
       if (!focus) { 
        alert('LOST FOCUS'); // both lost focus 
       } 
      }, 50); 
     }); 
    }); 
}); 
+1

Что такое 'row' ??? –

+0

Вы можете предоставить информацию четко – krishna

ответ

2

Довольно точно, проблема заключалась в том, что editBoxes динамически добавлялись на страницу. Это не было явным в моем вопросе. Поскольку они были динамически добавлены, мне нужно использовать

$(document).on('blur', '.editBoxes', function(){ 
... 
} 
0

Последние две строки вашего примера кода должен быть этот

}); 
}); 

Это необходимо для закрытия вызова функции готовый и нажмите кнопку.

Другая возможная проблема заключается в том, что вы завершаете прослушиватели фокуса и размытия в обработчиках кликов. Зачем ты это сделал?

+0

Благодаря отсутствующим скобкам и скобкам были только опечатки от меня копирование/вставка моего кода. Я пытаюсь связать обработчики динамически при щелчке «.editClass», поэтому он завернут в обработчик кликов. – flerngobot