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就不存在了?