javascript - 背景图像事件处理程序

标签 javascript jquery

如果一个 HTML 元素(例如 div)有一个 CSS 背景图片,是否可以分配一个事件处理程序,当用户点击背景图片时触发,而不是其他任何部分元素?

如果是这样,一个 JQuery 示例将不胜感激。

最佳答案

虽然无法检测到对背景图片的点击,但您可以使用一些巧妙的 JS 和 CSS 魔法,并在背景图片上设计一个遮蔽元素,如下所示:http://jsfiddle.net/ahmednuaman/75Rxu/ , 这是代码:

HTML:

<div id="bg_img_1"></div>
<div id="bg_img_2">
    <div id="hit"></div>
</div>

CSS:

div
{
    display: block;
    position: relative;
    width: 200px;
    height: 200px;
    background-repeat: no-repeat;
    background-position: center center;
}
#bg_img_1
{
    background-image: url('http://placekitten.com/100/100');   
}
#bg_img_2
{
    background-image: url('http://placekitten.com/100/100');   
}
#hit
{
    display: block;
    position: absolute;
    width: 100px;
    height: 100px;
    background: #000000;
    opacity: .3;
    margin: 50px;
}

JS:

function handleClick(e)
{
    console.log(e.target.id);
}

$( '#bg_img_1' ).click( handleClick );
$( '#hit' ).click( handleClick );

关于javascript - 背景图像事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8057747/

相关文章:

javascript - Jquery 验证所有错误仅显示在一个警报框中

javascript - Racket 顶部碰撞检测乒乓球

javascript - 图片链接未显示在另一张图片上

javascript - 如何将文件从 JavaScript 传递到 PHP?

javascript - 使用 jQuery Ajax 获取另一个页面的 div 的内容

javascript - 是否可以读取 JavaScript 全局/内置对象方法(即 array.filter、.sort)的代码?

javascript - JQuery 代码适用于 Chrome,但不适用于 IE 版本 8.0.7601.17514

javascript - 为什么我的变量在回调函数之外未定义?

jquery - CSS/jQuery : Fixed when scrolling horizontally but not vertically

javascript - 我如何使用一个 "if"来完成相同的工作?