1

所以我创建了一个小的 javascript 类,它应该 AJAX 在 PHP 文件中发布一些东西。课程如下:

var cms = cms || {};

cms.load_view = (function() {
    return {
        change: function() {
            jQuery("#layout-switch a").on('click', function()
                {
                    jQuery('#layout-switch a').removeClass('current');
                    jQuery(this).addClass('current');
                    var column_number = jQuery(this).attr('data-name');
                    var category = jQuery("#cat_id").val();
                    var data = {mode: column_number, cid: category};
                    this.postChange(data);
                });
        },
        postChange: function(data) {
                jQuery.ajax({
                    type: 'post',
                    url: SITEURL + "/modules/digishop/loadcategory.php",
                    data: data,
                    beforeSend: function () {
                        jQuery('#digishop').animate({
                            opacity: 0
                        }, 250, function () {
                            jQuery(this).addClass(column_number);
                            jQuery(this).animate({
                                opacity: 1
                            }, 250);
                        });
                    },
                    success: function (html) {
                        jQuery("#digishop").html(html);
                    }
                });
            return true;
        }
    }
})(jQuery);
jQuery(document).ready(function() {
    cms.load_view.change();
});

但是,当我单击选择器时,Firebug 说postChange在第一种方法中调用它时它不是一个函数,也就是this.postChange(data);

有任何想法吗?

谢谢!

4

1 回答 1

3

在 change 函数内部,this是对您单击的链接的引用。替换this.postChange(data);cms.load_view.postChange(data);

于 2013-03-16T13:12:36.570 回答