我希望当鼠标悬停在图像上方时,应一次触发一个事件,并且仅当鼠标移出该图像并再次返回并且至少经过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/