使用.has()和keyup事件

时间:2013-09-26 13:02:35

标签: javascript jquery

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

这就是我现在正在尝试的但是它不起作用。

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

4 个答案:

答案 0 :(得分:3)

试试这个

if ($('body img').length) {
}

答案 1 :(得分:1)

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

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

这是有效的Fiddle

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

为什么不:

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