Использование .has () с событием keyup

0

Я пытаюсь использовать селектор .has() только для выполнения ключевых элементов управления, когда у моего тела есть изображение.

Это то, что я пытаюсь в данный момент, но он не работает.

if ($('body').has('img')){
   $(document).on('keyup', function (event) {
     if (event.which === 37) {
       console.log('test');
     }
   });
}
Теги:

4 ответа

1
Лучший ответ

Я бы предпочел проверить, есть ли изображение с помощью простого селектора:

if ($('img').length) {
   $(document).on('keyup', function (event) {
     if (event.which === 37) {
       console.log('test');
     }
   });
}

Здесь работает Fiddle

3

Попробуй это

if ($('body img').length) {
}
  • 0
    Почему это работает, если OP ( $('body').has('img') не работает?
  • 0
    Потому что $('body').has('img') Has $('body').has('img') вернет array с элементами или empty, что всегда будет правдой
Показать ещё 1 комментарий
0

Если нормально зарегистрировать элемент hanlder to body, и условие изображения будет динамическим, тогда

$(document).on('keyup', 'body:has(img)', function (event) {
    if (event.which === 37) {
        console.log('test');
    }
});
0

Почему нет:

$(document).on('keyup', 'body', function (event) {
    if($(this).find('img').length) {
       if (event.which === 37) {
           console.log('test');
       }
    }
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню