Quelqu'un pourrait-il me dire pourquoi le premier extrait de code ne fonctionne pas et le second. Est-ce le problème de la portée des variables ou tout autre problème ?

jQuery(document).ready(function($) {
    var displayNo = $(".ue-show-success").css('display', 'none');
    var displayYes = $(".ue-show-error").css('display', 'block');

    $(".somebutton").on('click', function() {
        displayNo;
        displayYes.text('some text');
    });
});

Le code ci-dessus ne fonctionne pas comme prévu. Mais en dessous, on le fait.

jQuery(document).ready(function($) {
    $(".somebutton").on('click', function() {
        $(".ue-show-success").css('display', 'none');
        $(".ue-show-error").css('display', 'block').text('some text');
    });
});

Merci d'avance

1
Raashid Din Dar 16 nov. 2020 à 17:39

1 réponse

Meilleure réponse

Cette instruction crée un objet :

var displayNo = $(".ue-show-success").css('display', 'none');

Ce n'est pas une fonction appelable. Tu devrais faire quelque chose comme ça :

var displayNo = function() {
    return $(".ue-show-success").css('display', 'none');
}

Vous appelleriez ensuite cette fonction avec des parenthèses, comme ceci :

displayNo();
1
isherwood 16 nov. 2020 à 14:43