JavaScript/jQuery onmouseover问题

标签 javascript jquery events mouseover

我希望当鼠标悬停在图像上时,应触发一次事件,并且只有在鼠标离开该图像并再次返回并且至少经过 2 秒后才应再次触发该事件。 如果我将鼠标悬停在我的图像上,我当前的函数将被连续调用 (refreshcash)

<img src="images/reficon.png" onmouseover="refreshcash()" onmouseout="normalimg()" id="cashrefresh"/>

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

function normalimg() {
 $("#cashrefresh").attr("src","images/reficon.png");
}

代码更新 这段代码好像有bug,但是算法还算合乎逻辑

<script type="text/javascript">
var canhover = 1;
var timeok = 1;
function redotimeok() {
    timeok = 1;
}
//
function onmenter()
{
if (canhover == 1 && timeok == 1) 
    {
  enter();
  canhover = 0;
    }
}
//
function onmleave()
{
  leave();
  canhover = 1;
  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(function(){
  $("#showname").load('./includes/do_name.inc.php');
  $("#cashrefresh").attr("src","images/reficonani.gif");
}, function(){
  $("#cashrefresh").attr("src","images/reficon.png");
});

你的图片应该是这样的:

<img src="images/reficon.png" id="cashrefresh"/>

更新:

像这样修改你的代码:

var e = null;
var l = null;

$('#cashrefresh').hover(function(){
  e = setTimeout(enter, 2000)
}, function(){
  l = setTimeout(leave, 2000)
});

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

function leave(){
  $("#cashrefresh").attr("src","images/reficon.png");
  clearTimeout(l);
}

关于JavaScript/jQuery onmouseover问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3418472/

相关文章:

javascript - 我/如何在加载 Rails 部分时将 jQuery 事件绑定(bind)到表单元素加载?

javascript - 每当我移动到不同的标签屏幕时,它都会显示错误 "Accessing the state property of the route object is not supported"

php - 如何在 Phalcon PHP 中访问 SecurityPlugin (Acl) 中的模型数据?

java - 按键事件未触发

javascript - 使用 jquery 更改 <br> 之后的文本

javascript - 在 JavaScript 中使用 toString() 而不是构造函数

javascript - 面板从另一页折叠(展开)

jquery - 如何通过选择显示/隐藏div。(jquery)

javascript - jquery live可以解决这个问题吗?表格链接必然要点击,ajax 刷新行会毁掉一切

javascript - 从 API (elgg) 查找并提取数据