1

そこで、AJAXがPHPファイルに何かを投稿することになっている小さなjavascriptクラスを作成しました。クラスは次のとおりです。

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

変更機能の中にthisは、クリックしたリンクへの参照があります。に置き換えthis.postChange(data);ますcms.load_view.postChange(data);

于 2013-03-16T13:12:36.570 に答える