繁体   English   中英

on('click')函数在第二次点击时触发

[英]on('click') function fires on second click

我有一个问题,当单击某个元素时,我会切换一个li ,但是问题是,当单击“ click”元素时,我试图将窗口导航到该li中心。 它正在工作,但是我的问题是,该脚本仅在第二次单击时有效?

我的理论是,由于该lidisplay:none ,所以它不是在第一次单击时读取它,而是在第二次单击时读取它。 无论如何,是否有某种方法可以同时触发切换和窗口导航来解决此问题?

还有一种方法可以平滑地动态(动画)移动它?

多谢你们!

样本JSFIDDLE

 $(document).on('click', "#click", function(){

  var viewportHeight = $(window).height(),
      foo = $('ul li:nth-child(2)'),
      elHeight = foo.height(),
      elOffset = foo.offset();
  $(window).scrollTop(elOffset.top + (elHeight/2) - (viewportHeight/2));
  $(foo).slideToggle();
  });

大副尝试设置它的可见性:隐藏; 不显示无

如果也无法使用,请尝试在直接单击时设置计时器工作,这一次将再次调用计算功能...,它将可以正常工作,以便可以更轻松地对其进行测试。

        $(document).on("mousemove", "#click", function(){

  var viewportHeight = $(window).height(),
      foo = $("ul li:nth-child(2)"),
      elHeight = foo.height(),
      elOffset = foo.offset();
  $(window).scrollTop(elOffset.top + (elHeight/2) - (viewportHeight/2));
  $(foo).slideToggle();
  });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM