0

我正在尝试使用.has()选择器仅在我的身体有图像时执行键控制。

这是我目前正在尝试的,但它不起作用。

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

4 回答 4

3

试试这个

if ($('body img').length) {
}
于 2013-09-26T13:05:17.113 回答
1

我宁愿使用普通选择器检查图像是否存在:

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

这是工作小提琴

于 2013-09-26T13:08:47.513 回答
0

如果可以将处理程序注册到 body 元素并且图像条件是动态的,那么

$(document).on('keyup', 'body:has(img)', function (event) {
    if (event.which === 37) {
        console.log('test');
    }
});
于 2013-09-26T13:05:26.200 回答
0

为什么不:

$(document).on('keyup', 'body', function (event) {
    if($(this).find('img').length) {
       if (event.which === 37) {
           console.log('test');
       }
    }
});
于 2013-09-26T13:09:43.480 回答