gpt4 book ai didi

javascript - 为什么 box dblclick 不起作用?

转载 作者:行者123 更新时间:2023-11-28 10:12:11 25 4
gpt4 key购买 nike

我对框 dblclick 功能有问题,当我点击带有框类的 div 时,它没有传递页面 dblclick,它执行页面点击功能

我的问题是如何让双击带有box类的div忽略页面功能的双击功能?

这是我的 html 代码:

<html>
<head>
<link type="text/css" rel="stylesheet" href="css/organizer.css">
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="js/organizer.js"></script>
</head>
<body>
<div id="page">

</div>

</body>
</html>

这是js代码:

    var tempX=0;
var tempY=0;

$(document).ready(function()
{
$('.box').dblclick(function()
{
box2();
});
$('#page').dblclick(function()
{
tempX=0;
tempY=0;
box();
});
});

function box()
{
tempX = event.pageX-110;
tempY = event.pageY-60;

$('<div></div>').addClass('box').css({top:tempY,left:tempX}).appendTo($('#page'));

}

function box2()
{
tempX = event.pageX-400;
tempY = event.pageY-180;

$('<div></div>').addClass('box2').css({top:tempY,left:tempX}).appendTo($('#page'));

}

这是CSS代码:

 #page
{
position:relative;
background-color:yellow;
top:0px;
left:0px;
width:100%;
height:100%;



}

.box
{
position:absolute;
background-color:red;
display:inline-block;
width:200px;
height:100px;
margin:5px;
z-index:10;
}
.box2
{
position:absolute;
background-color:blue;
display:inline-block;
width:400px;
height:200px;
margin:5px;
z-index:10;
}

最佳答案

当您点击 .box 时,它本身位于 #page 中,事件“冒泡”,这意味着 #page 事件将被触发。为避免这种情况,请使用 event.stopPropagation()

此外,您将操作绑定(bind)到尚不存在的元素,因此除非您使用事件委托(delegate),否则它们将无法工作:

$(document).on('dblclick','.box',function(){...});

JS

$(document).on('dblclick','.box',function(event) 
{
event.stopPropagation();
box2();
});
$(document).on('dblclick','#page',function()
{
tempX=0;
tempY=0;
box();
});

此外,要让您的#page可见,请将其位置设置为absolute

JS Fiddle Demo

关于javascript - 为什么 box dblclick 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24343219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com