Javascript 将两个jQuery函数合并为速记?
我有这个:Javascript 将两个jQuery函数合并为速记?,javascript,jquery,Javascript,Jquery,我有这个: $("#about-us .faq-cta").click(function () { $('#faq').load('faqs.html #main').delay(100).slideToggle('1000', "easeOutQuad", function () { $.waypoints('refresh'); $("#siteNav li a").removeClass("siteNavSelected"); }, {
$("#about-us .faq-cta").click(function () {
$('#faq').load('faqs.html #main').delay(100).slideToggle('1000', "easeOutQuad", function () {
$.waypoints('refresh');
$("#siteNav li a").removeClass("siteNavSelected");
}, {
offset: function () {
return $.waypoints('viewportHeight') - $(this).outerHeight();
}
});
});
这是:
if (window.location.hash.toLowerCase() === "#faq") {
$("#about-us .faqCta").click(function () {
$('#faq').load('faqs.html #main').delay(100).slideToggle('1000', "easeOutQuad", function () {
$.waypoints('refresh');
$("#siteNav li a").removeClass("siteNavSelected");
}, {
offset: function () {
return $.waypoints('viewportHeight') - $(this).outerHeight();
}
});
});
}
每个人做完全相同的事情
有没有办法写一点速记来将两者结合起来?使用:
var fcOnClick = function () {
$('#faq').load('faqs.html #main').delay(100).slideToggle('1000', "easeOutQuad", function () {
$.waypoints('refresh');
$("#siteNav li a").removeClass("siteNavSelected");
}, {
offset: function () {
return $.waypoints('viewportHeight') - $(this).outerHeight();
}
});
};
var $cont= $('#about-us');
$('.faq-cta',$cont).click(fcOnClick);
if(window.location.hash.toLowerCase() === "#faq"){
$('.faqCta',$cont).click(fcOnClick);
}
如果您不止一次地编写同一代码,那么它可能应该在自己的函数中。不过,在本例中,您附加了一个事件侦听器,因此,如果哈希匹配,我看不出您再次调用它的原因。它已经存在了。当if为false时,是否处理事件是否重要?还是说.faqCta就不存在了?