Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要一种方法来模拟触发后的相同鼠标指针(修复错误)_Javascript_Jquery_Html - Fatal编程技术网

Javascript 需要一种方法来模拟触发后的相同鼠标指针(修复错误)

Javascript 需要一种方法来模拟触发后的相同鼠标指针(修复错误),javascript,jquery,html,Javascript,Jquery,Html,我试图解决一个bug,其中包括用户打开菜单,当他们输入Div1、Div2或Div3时,菜单关闭,我的代码被执行。test()函数应该运行代码,除非HMAnimState变量为true(或者login,这里的情况并非如此) 现在发生的事情是,当他们输入所选的div并在我的一个动画仍在运行时执行此操作时,HMAnimState变量被设置为true,之后它无法查看用户是否输入div,因为它需要某种重新加载,因为如果不发生这种情况,屏幕将停留在相同的位置 我试着用 setTimeout(函数(){tes

我试图解决一个bug,其中包括用户打开菜单,当他们输入Div1、Div2或Div3时,菜单关闭,我的代码被执行。
test()
函数应该运行代码,除非
HMAnimState
变量为true(或者login,这里的情况并非如此)

现在发生的事情是,当他们输入所选的div并在我的一个动画仍在运行时执行此操作时,
HMAnimState
变量被设置为true,之后它无法查看用户是否输入div,因为它需要某种重新加载,因为如果不发生这种情况,屏幕将停留在相同的位置

我试着用
setTimeout(函数(){test().mouseleave().mouseenter();},1000)
但这不起作用

从用户悬停的div移动到其他两个div中的一个可以工作,但这是非常不切实际的


我认为再详细一点可能会有用,但据我所知,也许下面的内容会有用

每当触发事件且HMAnimState为true时,将请求推送到数组上。然后,当HMAnimState设置为false时,循环处理挂起的请求并执行它们。这假设您在某处有一个事件侦听器,并且您知道何时HMAnimState设置为false

这是这个想法的一个例子,我还没有实际测试过

var stack = [];
$(".Div1, #Div2, #Div3").mouseenter(function test(){
    if (HMAnimState === true || HMAnimState === "LoginOverride") {
        //push any metadata about this event you will need in order to execute
        //this request later onto the stack
        stack.push("div_mouseenter", this); 
        return false;
    }else{
        // Hide div1 and other stuff
   }
});

//just a sample function I assume you have access to
function onAnimationComplete() {
    HMAnimState = false;
    for(var i = 0; i < stack.length; ++i) {
        handleRequest(stack[i]);
    }
}
var堆栈=[];
$(“.Div1,#Div2,#Div3”).mouseenter(函数测试(){
if(HMAnimState===true | | HMAnimState===“LoginOverride”){
//推送执行此事件所需的有关此事件的任何元数据
//此请求稍后将被添加到堆栈中
stack.push(“div_mouseenter”,this);
返回false;
}否则{
//隐藏div1和其他东西
}
});
//只是一个示例函数,我假设您可以访问它
函数onAnimationComplete(){
HMAnimState=false;
对于(变量i=0;i
trigger(“mouseenter”)
是否起作用?是否有原因
Div1
是一个类,但是
Div2
Div3
是ID?@Barmar是的。Div1被多次使用,但是所有其他具有该类的div都被隐藏,因此不受影响#Div2和#Div3是单div,只使用一次。@Yannick啊,谢谢你,我想这可能有用
var stack = [];
$(".Div1, #Div2, #Div3").mouseenter(function test(){
    if (HMAnimState === true || HMAnimState === "LoginOverride") {
        //push any metadata about this event you will need in order to execute
        //this request later onto the stack
        stack.push("div_mouseenter", this); 
        return false;
    }else{
        // Hide div1 and other stuff
   }
});

//just a sample function I assume you have access to
function onAnimationComplete() {
    HMAnimState = false;
    for(var i = 0; i < stack.length; ++i) {
        handleRequest(stack[i]);
    }
}