我有一个定时事件,我想根据鼠标指针所在的HTML元素采取不同的行为 有没有办法,假设我有HTML元素,知道鼠标指针当前是否在它上面 我很清楚onmouseover / onmouseout事件以及如何使用它们 我正在使用JQuery 我显然正在寻找某种旗帜,因为我需要检查状态而不是处理事件 再次,我知道如何通过事件来实现这一点。
答案 0 :(得分:3)
你看过jQuery.hover()吗? http://api.jquery.com/hover/
答案 1 :(得分:3)
我不知道有任何内置的方法来ping一个元素以获得鼠标悬停的状态。
但是,你可以通过在mouseenter和mouseleave更新一个标志来创建一个标志 - 这是Brian Driscoll's .hover
建议的地方:
jQuery.fn.tracking = function () {
this.data('hovering', false);
this.hover(function () {
$(this).data('hovering', true);
}, function () {
$(this).data('hovering', false);
});
return this;
};
jQuery.fn.hovering = function () {
return this.data('hovering');
}
您需要为您关注的每个元素初始化跟踪:
$('#elem1,#elem2').tracking();
但是你可以获得其中任何一个的状态:
if ($('#elem1').hovering()) {
// ...
} else if ($('#elem2').hovering()) {
// ...
}
答案 2 :(得分:0)
你可能对document.elementFromPoint有好运,虽然我认为旧的浏览器实现存在一些不一致之处( http://www.quirksmode.org/dom/w3c_cssom.html#documentview)。
$('#elem').mousemove(function(e){
if (this == document.elementFromPoint(e.clientX, e.clientY)) {
// Do stuff
}
});
或在处理程序之外
if ($('#elem').get(0) == document.elementFromPoint(x, y)) {
// Do stuff
}
除此之外,我想到的另一个选择是使用事件处理程序来跟踪鼠标所在的元素。
答案 3 :(得分:0)
你需要给html andme命名,在mouseover上你需要检查document.getelementsbyName。然后检查你得到的输出。现在你可以决定是html控件还是asp.net。
使用collObjects = object.getElementsByName(“htmlcontrol”)时,请比较两者的id。
为什么你需要在javascript中检查这个为什么。可能还有其他一些解决方案。请与我们分享。