jQuery-.click()不在.animate回调中工作
当用户单击链接时,我需要向上滚动到jQuery-.click()不在.animate回调中工作,jquery,Jquery,当用户单击链接时,我需要向上滚动到showmaildiv,然后触发单击事件以打开电子邮件数据。这项工作: $(".showemaillink").click(function(e) { e.preventDefault(); var emailid = $(this).attr('data-emailid'); var emaildiv = $(".showemaildiv[data-id='" + emailid + "']");
showmaildiv
,然后触发单击事件以打开电子邮件数据。这项工作:
$(".showemaillink").click(function(e) {
e.preventDefault();
var emailid = $(this).attr('data-emailid');
var emaildiv = $(".showemaildiv[data-id='" + emailid + "']");
$('html, body').animate({
scrollTop: emaildiv.offset().top
}, 500);
emaildiv.click();
});
但是为了让它更好一点,我希望电子邮件在动画之后扩展,所以我使用回调。但是,在这种情况下,emaildiv.click()
不起作用,尽管警报是-这里出了什么问题
$(".showemaillink").click(function(e) {
e.preventDefault();
var emailid = $(this).attr('data-emailid');
var emaildiv = $(".showemaildiv[data-id='" + emailid + "']");
$('html, body').animate({
scrollTop: emaildiv.offset().top
}, 500, function(){
emaildiv.click();
alert('callback fired');
}
);
});
你的代码是正常的和工作的(我已经试过了)。
但是回调函数可能有问题——它会被调用两次,对于正在制作动画的每个元素——第一次调用html,第二次调用body
您可以在此处阅读更多信息:
如果您的emaildiv
click事件中有一些操作否定了以前的操作(如切换),那么它看起来不起作用。是的-您是对的,我应该意识到这两个回调在单击我的emaildiv
两次-一次打开,一次关闭!!链接中的代码修复了此问题:)