【问题标题】:How do I use functions of the MVC in a page loaded by ajax?如何在ajax加载的页面中使用MVC的功能?
【发布时间】:2012-03-07 23:30:20
【问题描述】:

我的控制器看起来像这样:

jQuery.extend({
    Controller: function(model, view){

    //-----VIEW-----//
    var vlist = $.ViewListener({
        clickItem : function(Item){
            switch (Item) {
                case 'File':
                    //do something
                    break;
                default:
                    //do something else
            }
        }
    });
    view.addListener(vlist);

    //-----MODEL-----//
    var mlist = $.ModelListener({
        gotContent : function(Item) {
            switch (Item.type) {
                case 'Download':
                    //do someting else
                    break;
                default:
                    //do something else
            }
            //update view
        }
    });
    model.addListener(mlist);

    }
});

如何使用不是由 MVC 创建的页面中的 clickItem 函数?

我尝试了 view.clickItem 和许多其他方法,但是没有定义任何内容,因为它都在私有函数中。

我像这样加载 MVC:

$(function(){
    var model = new $.Model();
    var view = new $.View($("#framework"));
    var controller = new $.Controller(model, view);
    view.init();
});

基本上我有链接,我想以与 clickItem 函数相同的方式操作。

【问题讨论】:

  • 应该澄清 MVC 确实获取了页面而不是创建它。

标签: javascript jquery ajax model-view-controller


【解决方案1】:

通过使用 jQuery 的 .live() 方法能够解决这个问题。 在 ajax 成功回调中,我运行了一个 jQuery .live() 方法来将 onclick 事件附加到调用 clickItem() 函数的元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多