2013-02-24 38 views
1

這裏是我的代碼jQuery的 - 如何減少重複的代碼爲我的情況

jQuery(document).ready(function() { 

    if(jQuery('input[name="email_notification"]').is(":checked")) 
     jQuery('#your_email').show(); 
    else 
     jQuery('#your_email').hide(); 

    jQuery('input[name="email_notification"]').click(function(){ 
     if(jQuery(this).is(":checked")) 
      jQuery('#your_email').show(); 
     else 
      jQuery('#your_email').hide(); 
    }); 
}); 

我有很多的代碼,這樣做單調乏味的工作。 當頁面加載時,檢查一個元素是否被選中並顯示/隱藏另一個元素。 然後,綁定一個點擊事件再次執行。

是否有辦法可以緩解我的編碼生活.....

在此先感謝。

不擅長英語,並希望一些編輯器可以給這個問題一個更清晰的標題。

+0

做ü有一個JSP?原因是 - 如果你正在加載元素,你可以通過scriplet設置選中的屬性? – user1428716 2013-02-24 08:22:34

回答

3

只需綁定你的處理程序,並觸發DOM已準備就緒事件。

$(document).ready(function() { 
    $('input[name="email_notification"]').change(function(){ 
     $('#your_email').toggle(this.checked); 
    }).change(); 
}); 
0

嘗試這樣的事:

function handleEmailDisplay($EmailContainer) 
{ 
    if($EmailContainer.is(":checked")) 
     jQuery('#your_email').show(); 
    else 
     jQuery('#your_email').hide(); 
} 

jQuery(document).ready(function() { 

    handleEmailDisplay($('input[name="email_notification"]')) 

    jQuery('input[name="email_notification"]').click(function(){ 
     handleEmailDisplay($(this)) 
    }); 

});