我创建了一个js函数,它将按如下方式切换页面正文的内容:
var BodySwitcher = {
initBodySwitcher : function(){
var self = this;
$(document).on("click", ".bodySwitcher", function() {
var action = $(this).attr("id");
self.ajaxCall(action, null, $.proxy(self.showBody, this), $.proxy(self.initCall, this));
});
},
ajaxCall : function(action, data, callback, callback1){
$.ajax({
url: action,
type: "POST",
data: data,
error: function(){
alert('Please Contact your Administrator');
},
success: function(data){
callback(data);
},
complete: function (data){
callback1(data);
}
});
},
showBody : function(data){
var $container = $("#body_container");
$container.empty();
$container.html(data);
},
initCall: function(data){
var $container = $("#body_container");
var $table = $container.find(".table");
if ($table.length > 0){
initDataTable($table);
}
var $form = $container.find("form");
if ($form.length > 0){
initForm($form);
}
},
initDataTable : function($table){
if ($table.length > 0){
$("#"+$table.attr("id")).dataTable( {
"sPaginationType": "full_numbers"
} );
}
},
initForm: function($form){
alert("form");
var self = this;
$form.form.validate();
$formSubmit = $form.find(".button");
$(document).on("click", $formSubmit, function(){
var formData = $form.serialize();
var action = $form.attr("id");
alert(action);
self.ajaxCall(action, formData, $.proxy(self.showBody, this), $.proxy(self.initCall, this));
});
}
};
但我遇到了这个错误:
Uncaught ReferenceError: initForm is not defined
为什么呢?为什么它能找到initDataTable但不能找到initForm?
答案 0 :(得分:1)
您不能将对象属性引用为普通变量。
initCall: function(data){
var $container = $("#body_container");
var $table = $container.find(".table");
if ($table.length > 0){
BodySwitcher.initDataTable($table);
}
var $form = $container.find("form");
if ($form.length > 0){
BodySwitcher.initForm($form);
}
},
initDataTable
导致错误的原因可能是因为$table.length
是0
,所以它会跳过该代码。