天生我才必有用

Javascript and Object

分类: Javascript    作者:Ray    2008年02月3日

为何需要使用Object? 其实这个不仅仅是为了赶潮流,由于ajax的流行,javascript的代码也变得越来越多的,这样必然会找出定义变量名称的重复,为了让自己撰写的代码有自己的名称的空间,最方便就是把代码包装到Object对象中。

var ajax_json_form = {
    onSubmit : function(formData, jqForm, options){    },
    onSuccess: function (responseText, statusText){    },
    processJson: function (data) {
         $('.errField').removeClass('errField');
         if (data.action == "success"){
               $("#" + data.id).html(data.message).addClass("message");
               $('#' + data.form_name).clearForm();
               for (var next = 0 ; next < data.params.length ; next ++){
                    $("#" + data.params[next].id).html(data.params[next].value);
               }
         }
         else {
               var msg = "<ul>";
               for (var next = 0 ; next < data.errors.length ; next ++){
                    msg = msg + "<li>" + data.errors[next].message + "</li>";
                    $("#" + data.errors[next].id).addClass("errField");
               }
               msg = msg + "</ul>";
         }
     }
}

这样写的代码其实有些类似其他语言中的Static函数,你不用初始化这个对象,因为它是静态对象,所以如需调用processJson,只需要使用ajax_json_form.processJson即可。

$(function() {
    var options = {
         beforeSubmit:  ajax_json_form.onSubmit,  // pre-submit callback
         success: ajax_json_form.processJson,        // post-submit callback
         dataType: "json"
    };
    $('#ajax_form').ajaxForm(options);
});

以上的代码就可以实现对JQuery的Ajax_form的使用,同时相关的callback函数都封装到ajax_json_form对象中,所以你也不用担心processJson的名称会和其它函数冲突了

标签:

Leave a Reply