[英]Extending jQuery click handler (patching $.fn.click function?) to check for a condition
[英]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.