繁体   English   中英

试图重写已弃用的 jquery function fn.click()

[英]Trying to rewrite a deprecated jquery function fn.click()

我正在为一个非常旧的 wordpress 站点更新 jQuery。 我正在尝试重写下面的 function:

 $(".smscroll").click(function(event){ event.preventDefault(); // CALCULATE DESTINATION PLACE var dest = 0; if ($(this.hash).offset().top > ($(document).height() - $(window).height())) { dest = $(document).height() - $(window).height(); } else { dest = $(this.hash).offset().top; } // GO TO DESTINATION $('html,body').animate({scrollTop:dest}, 1000, 'swing'); });

我意识到.click已被弃用。 所以,我试图用以下内容替换它:

 $(document).on("click", ".smscroll", function(event){ event.preventDefault(); // CALCULATE DESTINATION PLACE var dest = 0; if ($(this.hash).offset().top > ($(document).height() - $(window).height())) { dest = $(document).height() - $(window).height(); } else { dest = $(this.hash).offset().top; } // GO TO DESTINATION $('html,body').animate({scrollTop:dest}, 1000, 'swing'); });

我还需要清理什么来摆脱弃用?

您的代码似乎不再包含已弃用的功能,尽管$(document).on('click', scope, callback)是多余的。 像这样使用$(scope).on('click', callback)

 $(".smscroll").on("click", function(event) { event.preventDefault(); var dest = 0; if ($(this.hash).offset().top > ($(document).height() - $(window).height())) { dest = $(document).height() - $(window).height(); } else { dest = $(this.hash).offset().top; } $('html,body').animate({ scrollTop: dest }, 1000, 'swing'); });

当然,假设在加载所有需要选择的.smscroll元素之后应用事件侦听器。 当然,如果您的目标是将点击事件委托给.smscroll class,请不要使用它。

暂无
暂无

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

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