2015-06-23 14 views
5

Ho questo codice di lavoro sotto e penso che sia un po 'troppo lungo e ridondante posso personalizzarlo?Personalizza ridondante Input casella di controllo Codice Jquery

$("#unique").click(function() { 

    if ($(this).is(':checked')) { 
     $(".lotud").show(); 
     $("#add_lot").hide(); 
     $("#lots_rows_contnr").hide(); 

     $(".lotud input").prop({disabled: false}) 
     $("#lots_rows_contnr input").prop({disabled: true}) 
    } 
    else { 
     $(".lotud").hide(); 
     $("#add_lot").show(); 
     $("#lots_rows_contnr").show(); 

     $(".lotud input").prop({disabled: true}) 
     $("#lots_rows_contnr input").prop({disabled: false}) 
    } 

}); 

risposta

6

È possibile ridurre leggermente attraverso l'uso di ternari, utilizzando la proprietà checked sul DOMElement sé, unendo selettori e utilizzando la proprietà checked come base per la proprietà disabled. Prova questo:

$("#unique").click(function() { 
    $(".lotud").toggle(this.checked); 
    $("#add_lot, #lots_rows_contnr").toggle(!this.checked); 
    $(".lotud input").prop({ disabled: !this.checked }); 
    $("#lots_rows_contnr input").prop({ disabled: this.checked }); 
}); 

Quale delle due versioni, il tuo originale o il precedente, è più leggibile è una questione di opinione.

+0

grazie @Rory ho capito ora il tuo punto;) anch'io non capisco perché il downvote perché ho un codice funzionante e voglio solo personalizzarlo – Youssef

Problemi correlati