2 votes

Déclarer une variable statique dans jquery

Veuillez me guider en ce qui concerne la déclaration des variables statiques dans le programme suivant. Je veux incrémenter la valeur de la variable statique lists.counter en cliquant sur le bouton. Mais cela ne fonctionne pas.

 <%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="finalspecific2_list._Default" %>

   <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
    <script src="Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script>
    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>

<script type="text/javascript">

    $(document).ready(function lists() {

        var list = $('#myList li:gt(0)');

        list.hide();
        lists.counter = 0;
        var username = $("#<%= uname.ClientID %>").val();
        var pwd = $("#<%= pwd.ClientID %>").val();

        $("#<%= Login.ClientID %>").click(function () {

            lists.counter++;

            alert(lists.counter);
            lists.counter++;

        });

        $("#<%= Button1.ClientID %>").click(function () {

            {

                    alert(lists.counter);

                    }

                });
    });

  </script>

</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">

<asp:Button ID="Login" runat="server" Text="Login" />
<asp:Button ID="Button1" runat="server" Text="Login" />

</ul>

</asp:Content>

Le compteur de listes doit augmenter lorsque l'un des boutons est cliqué et doit s'incrémenter pour les clics suivants. Veuillez me guider dans cette affaire.

5voto

Sammy S. Points 567

Vous pouvez utiliser une fermeture ici :

$(document).ready(function() {
    // The actual counter is contained in the counter closure.
    // You can create new independent counters by simply assigning 
    // the function to a new variable
    function makeCounter() {
        var count = 0;
        return function() {
            count++;
            return count;
        };
    };

    // This variable contains a counter instance
    // The counter is shared among all calls regardless of the caller
    var counter = makeCounter();

    // The handler is bound to multiple buttons separated by commas
    $("#button, #another_button, #yet_another_button").click(function () {
       var i = counter();
       console.log("The counter now is at " + i);

       // Probably update your counter element
       // $("#counter").text(i);
    });
});

Vous pouvez trouver le code dans este violon.

Si vous êtes intéressé, vous pouvez lire plus sur les fermetures aquí .

Mise à jour : Ce violon utilise plusieurs boutons partageant le même compteur.

0voto

Dipaks Points 6880

Remplacer lists.Counter con this.Counter et vérifier si cela fonctionne

ou essayez ceci -

<input id="button" type="button" value="button" />

var counter = 0;

$("#button").click(function () {
   console.log(counter++);
});

Démonstration : http://jsfiddle.net/AxD7c/

0voto

Subhajit Points 1771

Lorsque vous déclarez des variables dans JQuery, n'utilisez pas de DOT entre les deux, mais vous pouvez utiliser le format camel pour différencier deux mots, comme suit list.counter devrait être listCounter

Code modifié :

$(document).ready(function lists() {

    listsCounter = 0;

    $("#<%= Login.ClientID %>").click(function () {

        listsCounter++;

    });

});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X