Javascript 是否可以通过divcontainer触发Mouseevents?
我有一个ID为mypointer的div元素,它有一个绝对位置。我使用jquery在页面上设置这个div的动画。目标是一个演示,其中元素在div元素上显示与鼠标指针相同的属性。所以我想模拟鼠标悬停、单击和右键单击事件。 可能吗?有人能给我举个例子,告诉我怎么做吗 谢谢你的回答 劳拉 附言。 这里的例子Javascript 是否可以通过divcontainer触发Mouseevents?,javascript,jquery,events,triggers,Javascript,Jquery,Events,Triggers,我有一个ID为mypointer的div元素,它有一个绝对位置。我使用jquery在页面上设置这个div的动画。目标是一个演示,其中元素在div元素上显示与鼠标指针相同的属性。所以我想模拟鼠标悬停、单击和右键单击事件。 可能吗?有人能给我举个例子,告诉我怎么做吗 谢谢你的回答 劳拉 附言。 这里的例子 红色正方形位于h1元素上方。当mypointer和h1元素发生冲突时,是否可以执行h1 mouseover事件?我不太确定您是否理解,但要“模拟”类似于mouseover等事件,您始终可以使用jQ
红色正方形位于h1元素上方。当mypointer和h1元素发生冲突时,是否可以执行h1 mouseover事件?我不太确定您是否理解,但要“模拟”类似于
mouseover等事件,您始终可以使用jQuery的以下形式:
$('#my_div_id').trigger('mouseover');
您还可以调用更“详细”的版本,在该版本中可以指定事件参数
$('#my_div_id').trigger({
type: 'keypress',
which: 13,
ctrlKey: true
});
当按下ctrl键
到“my\u div\u id”时,哪个事实会模拟返回键。如果您只需要执行事件处理程序代码,请使用..也许我不完全理解您的想法,但我编写了一些代码
它的工作原理非常简单。我们在#mypointer和h1(或任何其他选择器)上绑定两个事件“click mouseover”。当事件在#mypointer上触发时,我们检查每个h1元素,使其位置与#mypointer的位置相匹配,如果匹配,则触发匹配元素上的事件
"use strict";
/*global $*/
function getElementCoordinates(el) {
return {
left: el.offsetLeft,
right: el.offsetLeft + el.offsetWidth,
top: el.offsetTop,
bottom: el.offsetTop + el.offsetHeight
};
}
对不起,解析器“eat”checkIntersection函数,所以完整的代码在
wbr,
Roman.您想模拟事件…还是仅仅触发连接到这些事件的事件处理程序?我想,如果我有一个h1元素,我就有代码$(“h1”).mouseover(function(){$(“#output”).text('I over the h1元素');});当div#mypointer在h1元素上设置动画时,该代码也将执行。如果div与页面上的某个元素发生冲突,并且我在div#mypointer上调用了一个方法,我希望另一个元素的clickeventhelper触发并将被执行。在javascript中,这不是两个元素相遇时触发的冲突事件(据我所知)。您可能需要手动完成。谢谢您的工作。我没有搜索一个元素mypointer,它会对我的鼠标指针做出反应,并触发另一个元素的事件。我问是否可能有其他元素对我的指针做出反应,比如mousepointer元素对鼠标光标做出反应?
function checkIntersection($el) {
var pointer = getElementCoordinates($('#mypointer')[0]);
var element = getElementCoordinates($el[0]);
if ((pointer.left >= element.left && pointer.left = element.left && pointer.right = element.bottom && pointer.bottom = element.bottom && pointer.top
$(function () {
$('#mypointer').live('click mouseover', function (e) {
//here write selectors you want to check for collision
$('h1').each(function () {
if (checkIntersection($(this))) {
$(this).trigger(e.type);
return false;
}
});
});
$('h1').live('click mouseover', function (e) {
$("#output").html(e.type + ' fired on ' + e.target.nodeName);
});
});