2012-05-08 46 views
1

我有這個代碼,我想a)運行時複選框被選中。 b)在頁面加載時運行以查看它需要展開默認隱藏的部分。創建一個事件,檢查onload並更改

$(document).ready(function() { 
    $('#hasContractorFlag').on('change', function() { 
     if ($(this).is(':checked')) { 
      $('#hasContractor').show(); 
     } else { 
      $('#hasContractor').hide(); 
     } 
    }); 
}); 

我嘗試添加了load事件上面並沒有被觸發。

我知道我可以做同樣的事情到這一點,它的工作:

$(document).ready(function() { 
    noAddress($('#hasContractorFlag')) 

    $('#hasContractorFlag').on('change', function() { 
     noAddress($(this)); 
    }); 

    function noAddress(var field) { 
     if ($(field).is(':checked')) { 
      $('#hasContractor').show(); 
     } else { 
      $('#hasContractor').hide(); 
     } 
    }; 
}); 

什麼是實現這一目標的最佳途徑?

回答

5

如果添加.change();到您的文檔中的方法準備好,它就會調用你的方法。

的jsfiddle:http://jsfiddle.net/UQDaW/5/

$(document).ready(function() { 
    $('#hasContractorFlag').on('change', function() { 
     if ($(this).is(':checked')) { 
      $('#hasContractor').show(); 
     } else { 
      $('#hasContractor').hide(); 
     } 
    }).change(); // .change() will execute this method 
}); 
+1

這是走的方式做到這一點,我會後同樣的事情。 +1只是一個小提示,你可以在'.on'之後鏈接'.change',而不是調用'$('#hasContractorFlag')',並且請殺掉這些警報。 –

+0

@Vega很好的通話,我改變了代碼來匹配。謝謝。 :) –

+0

現在你所需要做的就是將這個if/else換成三元組,然後它就像我一樣......- – adeneo

0

你可以試試這個:

function noAddress(field) { 
    field.is(':checked') ? $('#hasContractor').show() : $('#hasContractor').hide(); 
}; 

一起:

$(document).ready(function() { 
    $('#hasContractorFlag').on('change load', function() { 
     noAddress($(this)); 
    }); 
    function noAddress(field) { 
     field.is(':checked') ? $('#hasContractor').show() : $('#hasContractor').hide(); 
    } 
}); 

DEMO

0
$(document).ready(function() { 
    $('#hasContractorFlag').on('change', function() { 
     $('#hasContractor')[$(this).is(':checked')?'show':'hide'](); 
    }).change(); 
}); 
2

我通常通過鏈接一個trigger('change')到創建更改事件

$(document).ready(function() { 
    $('#hasContractorFlag').on('change', function() { 
     if ($(this).is(':checked')) { 
      $('#hasContractor').show(); 
     } else { 
      $('#hasContractor').hide(); 
     } 
    }).trigger('change'); 
}); 
相關問題