javascript - 如何检测鼠标是否被点击而不是 $(this) 元素

标签 javascript jquery html css

如果在元素内单击鼠标,我想应用一些样式(此处为 .block)。如果单击该元素,则通过 $(this) 获取该元素并为其设置样式。之后,当用户点击 $(this) 元素以外的元素时,我想将其改回默认样式。我如何检测鼠标是否被点击而不是 $(this) 元素。

到目前为止的 js 脚本:

$( document ).ready(function() {

    // when a block is clicked get that specific block
    $('.block').click(function() {
        var block = $(this);
        block.css('background','red');
    });

    //if clicked other than the block do stuff

});

jsfiddle

最佳答案

更好的方法是使用 tabindex 和 css :focus 选择器

.container{
  border:1px solid #333;
  width:200px;
  height:200px;
}
.block{
  background-color: #ccc;
  width:50px;
  float:left;
  height:50px;
  margin:20px;
}
.block:focus{
 background-color: red;
 outline:none
}
<div class="container">
  <div class="block" id="block1" tabindex="1">
    </div>
  <div class="block" id="block2" tabindex="1">
    </div>
  <div class="block" id="block3" tabindex="1">
    </div>
  <div class="block" id="block4" tabindex="1">
    </div>
</div>

关于javascript - 如何检测鼠标是否被点击而不是 $(this) 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32284158/

相关文章:

javascript - 使用php上传AngularJS图片

php - 从下拉列表中选择值,第二个下拉列表自动更改

javascript - 如何仅在选择所有单选按钮时启用提交按钮?

javascript - 在JS中加载本地json文件

JavaScript 类 "undefined"- IE7

javascript - Express - 更新对数据库MongoDB不生效

javascript - 如何检查 asp 内的单选按钮 :repeater is checked or not using javascript/jquery

wicket 1.5 中的 javascript 引用顺序

javascript - 基于服务器数据使用 Jquery 创建表单的最有效方法

javascript - 如何在小滚动条中给 div 元素一个百分比高度?