因此,我创建了一个小型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);)中调用时不是函数。

有任何想法吗?

谢谢!

最佳答案

在更改功能中,this是对您单击的链接的引用。将this.postChange(data);替换为cms.load_view.postChange(data);

07-25 23:08