クリックイベントを持つボタン要素を作成する次の Javascript コードがあります。
function Button(id, url, blockMsg){
var id = id;
var url = url;
var blockMsg = blockMsg;
var message;
this.getId = function(){
return id;
};
this.getMessage = function(){
return message;
};
block = function(msg){
$.blockUI({
message: msg
});
};
unblock = function(){
$.unblockUI();
};
showErrors = function(){
console.log('errors');
}
$(id).bind('click', function(){
$.ajax({
url: url,
type: 'POST',
beforeSend: function(){
block(blockMsg);
},
error: function(response){
message = $.parseJSON(response);
message.action();
unblock();
console.log(action);
},
success: function(response){
message = $.parseJSON(response);
[message.action]();
unblock();
console.log(action);
}
});
});
};
$(document).ready(function(){
var buttonRegister = new Button('#btnCompanyRegister', '/company/register/', 'register ...');
});
ボタンをクリックすると、すべて正常に動作し、PHP スクリプトが返されます
json_encode(array('action' => 'showErrors'));
FireBug でエラーが表示されます: ["showErrors"] is not a function
私は何を間違っていますか?関数が指定されていないのはなぜですか? スコープに問題がありますか?
ご協力ありがとうございました。