我正在尝试为孩子的鼠标悬停事件添加简单的延迟,但遇到了困难。 (仍在学习!)
这使我能够在延迟后显示弹出窗口,但同时显示所有弹出窗口:
onmouseover='setTimeout(function() { $(\".skinnyPopup\").show(); }, 600)'
这可以立即显示我想要的弹出窗口:
onmouseover='$(this).children(\".skinnyPopup\").show()'
但该组合不会:
onmouseover='setTimeout(function() { $(this).children(\".skinnyPopup\").show(); }, 600)'
任何帮助,将不胜感激。谢谢!
你需要定义什么this
当它执行时,类似这样的事情会起作用:
setTimeout($.proxy(function() { $(this).children(".skinnyPopup").show(); }, this), 600)
或者只是使用.delay() http://api.jquery.com/delay/, 像这样:
$(this).children(".skinnyPopup").delay(600).show(0);
以上两个都是快速修复,我建议您远离内联处理程序并查看不引人注目的 http://en.wikipedia.org/wiki/Unobtrusive_JavaScript方法(参见这个答案 https://stackoverflow.com/questions/621574/jquery-why-unobtrusive-javascript-document-ready-function-rather-than-onclick/621589#621589 by Russ Cam https://stackoverflow.com/users/1831/russ-cam出于某些重要原因),例如:
$(function() {
$('selector').mouseover(function() {
$(this).children(".skinnyPopup").delay(600).show(0);
});
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)