Question

Cette ligne de javascript est dans le code de base Magento dans l'application / design / frontend / Base / par défaut / Modèle / Persistant / Checkout / Onepage / Billing.Phtml:

        $('billing-address-select') && billing.newAddress(!$('billing-address-select').value);

Voici la ligne dans le contexte:

    <script type="text/javascript">
//<![CDATA[
var billing = new Billing('co-billing-form', 
                          '<?php echo $this->getUrl('checkout/onepage/getAddress') ?>address/', 
                          '<?php echo $this->getUrl('checkout/onepage/saveBilling') ?>');
var billingForm = new VarienForm('co-billing-form');

/*billingForm.setElementsRelation('billing:country_id', 
                                  'billing:region', 
                                  '<?php echo $this->getUrl('directory/json/childRegion') ?>', 
                                  '<?php echo $this->__('Select State/Province...') ?>');*/

$('billing-address-select') && billing.newAddress(!$('billing-address-select').value);

var billingRegionUpdater = new RegionUpdater('billing:country_id', 
                                             'billing:region', 
                                             'billing:region_id', 
                                             <?php echo $this->helper('directory')->getRegionJson() ?>, 
                                             undefined, 
                                             'billing:postcode');
if ($('onepage-guest-register-button')) {
    Event.observe($('onepage-guest-register-button'), 'click', function(event) {
        var billingRememberMe = $('co-billing-form').select('#remember-me-box');
        if (billingRememberMe.length > 0) {
            if ($('login:guest') && $('login:guest').checked) {
                billingRememberMe[0].hide();
            } else if ($('login:register') && ($('login:register').checked || $('login:register').type == 'hidden')) {
                billingRememberMe[0].show();
            }
        }
    });
}
//]]>
</script>        

On dirait que cela comparait deux valeurs mais ne rien faire avec la comparaison.Quel est le but de cela?

Était-ce utile?

La solution

J'ai fait des recherches à ce sujet.Je pensais que le && était purement logique "et", mais il peut également être utilisé comme raccourci pour "si alors".

Dans ce cas, si $ ("adresse de facturation-select '") est vrai, la fonction NewAddress (dans Opcheckout.js) sera appelée "! $ (" adresse de facturation-select' '). Valeur "commeune dispute.C'est une façon étrange de montrer ou de masquer programmablement le nouveau formulaire d'adresse sur une seule page de page.

Voici une question de dépassement de pile où cela est expliqué: https://stackoverflow.com/ Questions / 3859433 / An-Explication-of-Shorthand-in-JavaScript

et une bonne explication de & vs &&: https://stackoverflow.com/questions/7310109/whats-the-ference-entre-et-in-javascript

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top