Событие нажатия Jquery не запускается каждый раз для всех элементов LI тега UL - PullRequest
0 голосов
/ 21 марта 2012

Привет,

Я создал выпадающий список. Тег div содержит ul, в котором есть элементы списка. Когда пользователь нажимает на элемент li, это значение должно быть обновлено в поле ввода. Проблема в том, что событие click не срабатывает на некоторых элементах li. elements.В первом случае я поместил 3 элемента LI, из этих только двух верхних событий, но не последнего. Во втором случае я изменил элементы LI на 5. Теперь только первые 3 элемента, но не последние 2. Из f 8 элементов 5 элементов стрельбы, но не 3 последних элемента. Я действительно смущен с этим поведением. Что может быть не так в моем коде .. Вот ссылка . Можете ли вы помочь мне ....

Ответы [ 2 ]

3 голосов
/ 21 марта 2012

Почему чрезмерно усложняется этот эффект? Говори коротко и просто (ПОЦЕЛУЙ)

Я создал простую демонстрацию для ранее заданного вопроса, отметьте его здесь .

Еще одна демоверсия с эффектом слайда.


Обновление

Ваша функция размытия создает проблему, поскольку одновременно запускается более одного события, особенно $('html').click(), эффект перекрывается. Добавьте небольшую задержку, чтобы все работало

/*Close value popup of the element which has lost focus*/
$('.irmNDrdnInput').blur(function(){
    drndValId = 'drdn-val-'+$(this).attr('id').split('-')[2];
    $('#'+drdnValId).delay(100).slideUp(300);
});

Рабочая ДЕМО

0 голосов
/ 21 марта 2012

Следующая строка в вашем коде вызывает проблему: (Я не думаю, что это необходимо, поскольку у вас тоже $(html).click() событие)

$('.irmNDrdnInput').blur(function(){
    drndValId = 'drdn-val-'+$(this).attr('id').split('-')[2];
    $('#'+drdnValId).slideUp(300);
});

Демонстрация: http://jsfiddle.net/6Kd67/5/

Для нажатия клавиш вы можете отслеживать код клавиши внутри события $('.irmNDrdnInput').keydown():

if (event.keyCode === 9) {
    $('.irmNDrdnVal').slideUp(300);
    return false;            
}

Демо: http://jsfiddle.net/6Kd67/7/

...