我希望当鼠标悬停在图像上方时,应一次触发一个事件,并且仅当鼠标移出该图像并再次返回并且至少经过2秒后才应再次触发该事件。

如果我将鼠标悬停在图像上,它会像每毫秒一样被调用,并且一旦您将鼠标悬停在变量“ canhover”上,函数的逻辑就会变为0,直到您将鼠标移出

这段代码似乎有一个错误,我看不到它。我需要一双新的眼睛,但是该算法有点合逻辑

工作代码:

<script type="text/javascript">
var timeok = 1;
function redotimeok() {
    timeok = 1;
}
//
function onmenter()
{
if (timeok == 1)
    {
  enter();
  timeok = 0;
    }
}
//
function onmleave()
{
  setTimeout(redotimeok, 2000);
  leave();
}
//

$('#cashrefresh').hover(onmenter,onmleave);

function enter(){
  $("#showname").load('./includes/do_name.inc.php');
  $("#cashrefresh").attr("src","images/reficonani.gif");
}

function leave(){
  $("#cashrefresh").attr("src","images/reficon.png");
}
</script>

最佳答案

我不知道这是否可以解决您的整个问题(因为我们没有关于它的详细描述),而是:

$('#cashrefresh').hover(onmenter(),onmleave());


尝试:

$('#cashrefresh').hover(onmenter,onmleave);


同样的事情在这里:

setTimeout(redotimeok, 2000); // just the function name


另外,我看不到您将timeok设置为零的位置。您是要在timeok = 0中设置onmenter()吗?

关于javascript - 在JS中看不到问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3419408/

10-09 18:16