问题描述
如何重用一块 jquery 代码而不重新重写它 例如我得到了这个动画并且想在另一行中重复它
$("#sign_up_btn").mouseenter(function(){
$("#sign_up_btn").animate({ opacity: "0.5" },300);
$("#sign_up_btn").animate({ fontSize: "200%" },300);
});
$("#sign_up_btn").mouseleave(function(){
$("#sign_up_btn").animate({ opacity: "0.2" },300);
$("#sign_up_btn").animate({ fontSize: "100%" },300);
});
解决方法
创建一个函数。
也很干(不要重复自己)
const anim = function(e) {
const enter = e.type === "mouseenter";
$(this)
.animate({ opacity: enter ? "0.5" : "0.2"},300)
.animate({ fontSize: enter ? "200%" : "100%" },300); // can possibly be merged
};
$("#sign_up_btn").on("mouseenter mouseleave",anim);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="sign_up_btn">Sign up</button>