在jQuery中捕捉鼠标事件的最佳实践<;部门>;s
我正在寻找在HTMLS中捕获鼠标事件的最佳方法。当你有复合div,有文本、图像和其他div时,我要做的就是在所有的东西上加一层来捕捉鼠标 这可能会导致进一步的问题,因为这一层可以避免您捕获构图的其他部分,迫使您扩展此方法 我显然受到了我过去作为flash程序员的影响,当时你不得不使用Sprite.graphics做同样的事情 我通常这样做:在jQuery中捕捉鼠标事件的最佳实践<;部门>;s,jquery,Jquery,我正在寻找在HTMLS中捕获鼠标事件的最佳方法。当你有复合div,有文本、图像和其他div时,我要做的就是在所有的东西上加一层来捕捉鼠标 这可能会导致进一步的问题,因为这一层可以避免您捕获构图的其他部分,迫使您扩展此方法 我显然受到了我过去作为flash程序员的影响,当时你不得不使用Sprite.graphics做同样的事情 我通常这样做: <div class="photo-element"> <div class="photo-element-image">&l
<div class="photo-element">
<div class="photo-element-image"><img src="..."/></div>
<div class="photo-element-title">Some Title</div>
<div class="photo-element-mouse-wrapper"></div>
</div>
.photo-element-mouse-wrapper
{
width:70px;
height:70px;
}
.photo-element-title
{
position:absolute;
top: 5px;
...
}
.photo-element-image
{
position:absolute;
top: 0px;
...
}
.photo-element
{
width:70px;
height:70px;
position:relative;
}
最后,jQuery将是:
$('.photo-element-mouse-wrapper').mouseover(function() {
//code
});
我的问题是:
这是捕获鼠标事件的最佳方法吗?如果要捕获所有子元素上的事件,请在父元素上附加事件处理程序,因为事件是在JavaScript的DOM树中冒泡的 试试这个
$('.photo-element').mouseover(function(){
//Code
});
如果您想捕获所有子元素上的事件,那么在父元素上附加事件处理程序,因为事件是在JavaScript中从DOM树中冒泡出来的 试试这个
$('.photo-element').mouseover(function(){
//Code
});
mouseover
和mouseout
事件会出现气泡,因此,例如,如果鼠标离开一个div,则会在div及其所有父对象上触发一个mouseout
事件,直到主体,除非发生此情况
您是否知道,以及?它们都会在进入/退出元素时触发,但不会冒泡。因此,如果您退出一个div,则只会触发一个
mouseleave
,仅在该div上触发mouseover
和mouseout
事件气泡,因此,例如,如果鼠标离开一个div,则会在div及其所有父对象上触发mouseout
事件,除非发生此情况
您是否知道,以及?它们都会在进入/退出元素时触发,但不会冒泡。因此,如果退出一个div,只会触发一个
mouseleave
,只会在该div上触发,这就是我将如何执行的操作-尽管我会将其包装在$(document).ready()中,以确保已首先加载DOM。我还将其设置为捕获整个DOM元素上的事件,例如带有class photo元素的div。代码示例:
$(document).ready(function() {
$('.photo-element').mouseover(function() {
//code
});
});
这就是我要做的——尽管我会将它包装在$(document).ready()中,以确保首先加载了DOM。我还将其设置为捕获整个DOM元素上的事件,例如带有class photo元素的div。代码示例:
$(document).ready(function() {
$('.photo-element').mouseover(function() {
//code
});
});
这是可行的,但您应该访问jquery的站点。下面是“photo元素鼠标包装器”的两个示例 用于悬停事件(mouseenter和mouseleave) 点击事件
$('.photo-element-mouse-wrapper').click(function(e){
e.stopPropagation(); // prevents event bubling
//write code for to take action when mouse clicks the element
})
还有其他可用的鼠标事件,如mouseover、mousedown e.t.c。您可以在上找到更多的示例,这是学习jquery的更好地方。这很有效,但您应该访问jquery的网站。下面是“photo元素鼠标包装器”的两个示例 用于悬停事件(mouseenter和mouseleave) 点击事件
$('.photo-element-mouse-wrapper').click(function(e){
e.stopPropagation(); // prevents event bubling
//write code for to take action when mouse clicks the element
})
还有其他可用的鼠标事件,如mouseover、mousedown e.t.c。您可以在上找到更多的示例,这是学习jquery的更好地方