简体   繁体   English

Typescript和Jquery:将类调用到Jquery onclick函数的最佳实践是什么?

[英]Typescript & Jquery: what is the best practice to call a class into Jquery onclick function?

I don't want instantiate a class in each function. 我不希望在每个函数中实例化一个类。 How to? 如何? What should be the best practice to organize this in a Typescript syntax? 在Typescript语法中组织它的最佳做法是什么?

$(".container_dettaglio .varianti .variante a").click(function (event) {
    event.preventDefault();
    var pr = new Prodotto($(this).data('variante'));
    pr.cambiaVariante();
});

$(".meno").on('click',function(e){
    e.preventDefault();
    var pr = new Prodotto($(this).data('variante'));
    pr.rimuoviQuantita();
});

$(".piu").on('click',function(e){
    e.preventDefault();
    var pr = new Prodotto($(this).data('variante'));
    pr.aggiungiQuantita();
});

The best workaround (I think) you can do is to restructure your class to return functions which will do your desires. 最好的解决方法(我认为)你可以做的是重组你的课程以返回能满足你需求的功能。 This is an example of what I mean: 这是我的意思的一个例子:

var MyClass = function(){
    return {
        Set: function(a, b, c){
            return [a, b, c].toString();
        },

        Modify: function(a){
            return a + ' .)';
        }
    }
};

$(function(){
    var mc = new MyClass();

    $('.a').on('click', function(){
        alert( mc.Modify($(this).data('variant')) );
    });

    $('.b').on('click', function(){
        alert( mc.Modify($(this).data('variant')) );
    });

});

So, by this way you instantiate your class once. 因此,通过这种方式,您可以实例化一次类。 Check the jsFiddle 检查jsFiddle

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM