我有以下html结构:
<div>
<p>Name <img src="url" alt="Image A"></p>
<p>Age <img src="url" alt="Image B"> </p>
<p><img src="url" alt="Image C"></p>
</div>
当鼠标输入html中的任何元素时,我想只显示鼠标所在元素的红色边框。当前代码是:
$("*").mouseenter(
function(){
$(this).css("border","solid red");
}).mouseleave(
function(){
$(this).css("border","none");
});
然而,当我的鼠标进入图像A时,包含图像A的段落带有图像A的边框。我只想让图像A具有边框。谁能建议我怎么做呢?
答案 0 :(得分:1)
使用此
$("p:first").mouseenter(
function(){
$(this).css("border","solid red");
}).mouseleave(
function(){
$(this).css("border","none");
});
答案 1 :(得分:1)
鼠标事件会冒出来,这意味着它们也会触发元素的父母。您可以使用stopPropagation()
$("*").mouseenter(
function(e){
e.stopPropagation();
$(this).css("border","solid red");
}).mouseleave(
function(e){
e.stopPropagation();
$(this).css("border","none");
});
答案 2 :(得分:1)
尝试添加event.stopPropagation();
答案 3 :(得分:0)
我想你想要这个
将鼠标悬停在p
上并在p
$("div p").mouseenter(
function () {
$(this).css("border", "solid red");
}).mouseleave(
function () {
$(this).css("border", "none");
});
将鼠标悬停在image
上并在image
$("div p img").mouseenter(
function () {
$(this).css("border", "solid red");
}).mouseleave(
function () {
$(this).css("border", "none");
});
或者您可以使用e.stopPropagation();
$("*").mouseenter(
function (e) {
e.stopPropagation();
$(this).css("border", "solid red");
}).mouseleave(
function (e) {
e.stopPropagation();
$(this).css("border", "none");
});
$("*").mouseenter(
function (e) {
e.stopPropagation();
$(this).parents('div').css("border", "none");
$(this).parents('p').css("border", "none");
$(this).css("border", "solid red");
}).mouseleave(
function (e) {
e.stopPropagation();
$(this).parents('div').css("border", "none");
$(this).parents('p').css("border", "none");
$(this).css("border", "none");
});
答案 4 :(得分:0)
更好的方法是添加一个显示元素边框的类:
$(function(){
$(elem).on({
mouseenter:function(){
$(this).addClass("bordered");
},
mouseleave:function(){
$(this).removeClass("bordered");
},
});
})
你的CSS:
.bordered {
border:1px solid red;
}
答案 5 :(得分:0)
使用
$("img").mouseenter(
function(){
$(this).css("border","solid red");
}).mouseleave(
function(){
$(this).css("border","none");
});
答案 6 :(得分:0)
$(document).ready(function(){
$('div').mouseenter(function(){
$(this).addClass('border');
});
$('div').mouseleave(function(){
$(this).removeClass('border');
});
});
CSS
.border{
border-width:3px;
border-style:solid;
border-color:#ff9900;
}