在揭示图案应用课程之外达到btn事件

时间:2015-05-30 10:48:58

标签: javascript jquery revealing-module-pattern

我有一个揭示图案的应用类。如何在btnMenu之外的model事件到达 感谢。

MyModel= (function () {     
    var btnClickEvents = function () {     
        var btnMenu = $('.btnMenu').on('click', function () {
            var date=  $(this).attr("data-rezerve-date");
            var statu= $(this).attr("data-rezerve-statu");
            alert("click"+date+'---'+statu);
        });    
    };
    return {
        initialize: initialize,
        asignValues: asignValues,
        getRezervationDateAndStatus: btnClickEvents.btnMenu//how can I reach this function outside of model    
    };
})();

更新 我改变我的代码作为你show.and添加一个返回函数

MyModel = (function () {
    var dt = "";
    var statu = "";
    var rvalue = {};
    var btnClickEvents = function () {
        $('.btnMenu').on('click', onBtnMenuClick);
    };

    function onBtnMenuClick(e) {
         dt = $(this).attr("data-rezerve-date");
         statu = $(this).attr("data-rezerve-statu");
         rvalue.date = dt;
         rvalue.statu = statu;
         console.log(dt);
    }
    var getRezervationDateAndStatus = function () {

        return rvalue;
    };
    return {
        initialize: initialize,
        asignValues: asignValues,

        getRezervationDateAndStatus: getRezervationDateAndStatus
    };
})();

并且将我的模块包含到我的网页后调用就像这样,

MyModel.asignValues(rezervasyonTable,data);
    MyModel.initialize();
    var result = MyModel.getRezervationDateAndStatus();
    console.log(result.date);

将控制台日志清空。

1 个答案:

答案 0 :(得分:1)

正如你所说,它是一种“透露”的模式。你可以看到你揭露的东西。为了能够在模块外部使用此功能,请更改以下代码:

MyModel = (function () {
    var btnClickEvents = function () {
        $('.btnMenu').on('click', onBtnMenuClick);
    };

    function onBtnMenuClick(e) {
        var date = $(this).attr("data-rezerve-date");
        var statu = $(this).attr("data-rezerve-statu");
        alert("click" + date + '---' + statu);
    }

    return {
        initialize: initialize,
        asignValues: asignValues,
        getRezervationDateAndStatus: onBtnMenuClick
    };
})();