2011-12-07 82 views
0

我有這樣的:結合2個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"); 
    }, { 
     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(); 
      } 
     }); 
    }); 
} 

每做同樣的事情。

有沒有辦法寫一些簡寫來結合兩者?

+0

如果你正在編寫相同的代碼不止一次,這也許應該是在它自己的功能。但在這種情況下,您附加了一個事件偵聽器,所以如果哈希匹配,我似乎無法看到再次調用它的原因。它已經在那裏。 – idrumgood

+0

當IF爲假時處理事件是否重要?或者.faqCta只是不存在呢? –

回答

1

用途:

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); 
}