Tiempo lectura: 1 min. 12 s.

Eventos # Ejemplo Siviglia-js

Eventos, ejemplo de uso con Siviglia-js

El siguiente código veremos los eventos:

  • Funciones predefinidas.
  • Llamar a métodos dentro de una clase.
  • addListener()
  • fireEvent()
  • destruct()
<html>
<head>
    <script src="/node_modules/jquery/dist/jquery.js"></script>
    <script src="../../../Siviglia.js"></script>
    <script src="../../../SivigliaStore.js"></script>
    <script src="../../../Model.js"></script>
    <script src="../../../SivigliaTypes.js"></script>
<script>
        Siviglia.Utils.buildClass({
            context: "Test",
            classes:{
                "Test":{
                    // Funciones predefinidas: constructor, destructor y metodos
                    construct:function(){ console.log("construct Test")},
                    destruct:function(){console.log("destruct Test")},
                    methods:{
                        metodo1:function(){console.log("metodo1 Test")},
                        metodo2:function(){console.log("metodo2 Test")},
                    }
                },
                "Test2":{
                    inherits:"Test",  // Test2 hereda todo lo de la clase "Test"
                    // Si no se pone punto, significa que está en el mismo contexto
                    // Test.Test  es = a poner solo Test1
                    //inherits: "Clase1, clase2, etc" por comas se pueden heredar más clases
                    construct:function(){
                        console.log("construct Test2");
                        this.Test();
                    },
                    destruct:function(){console.log("destruct Test2")},
                    methods:{
                        metodo1:function(){
                            this.Test$metodo1();
                            console.log("metodo1 Test2");
                        },
                        metodo3:function(){console.log("metodo3 Test2")}
                    }
                },
            }
        });

        // instancia de Test
        var s=new Test.Test();  
        s.metodo1();
        s.destruct();

        //instancia de textos
        var s2=new Test.Test2();
        // desde s2, queremos llamar al constructor del padre con this.Test();

        // llamar a un metodo NO sobreescrito
        s2.metodo3();
        //llamar a un metodo SI sobrerescrito this.Test$metodo1();
        s2.metodo1();

        // destructor al s2
        s2.destruct();  // los destructores llaman a todos los padres y siempre llaman en cascada

        var evento=new Siviglia.Dom.EventManger();

        evento.addListener("CHANGE",null,function(evName,params){
            console.log(evName);
            console.log(params);
        },"ESTE SE VA A QUEDAR COLGADO");

        evento.fireEvent("CHANGE",{p:12});
        evento.destruct();
        // importante, si se lanza un fireEvent, siempre hay que destruirlo
        // llamada global Siviglia.Dom.existingListeners
</script>
</head>
<body>

<script>
    //NO es necesario, ya que no se está parseando HTML para encontrar Expandos, etc... 
    //Solo se está usando Siviglia para crear clases.

    /*
    var obj1={"uno": 1};
    var parser=new Siviglia.UI.HTMLParser();
    parser.addContext("/",obj1);
    parser.parse($(document.body));
    */
</script>
</body>
</html>
Última modificación: March 11, 2020