確かに、私は javascript、jquery、または oop をほとんど知りませんが、物事をつなぎ合わせ、時にはそれらを機能させるには十分な知識があります。しかし、これは私の頭の中にあり、グーグルで調べても、何が起こっているのか頭も尻尾もわかりません。これは私のコードの要点です:
jQuery(document).ready(function($) {
var methods = {
init : function( options ) {
if (somthing) {
this.latlng(input);// <--- ERROR: Object has no method
}
},
auto : function( ) {
if (something) {
this.latlng(input);
} else {
this.location(input);
}
},
location : function ( input ) {
// draw map
},
latlng : function ( input, l ) {
// draw map
}
}
$.fn.codeAddress = function( method ) {
// Method calling logic
if ( methods[method] ) {
return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
} else if ( typeof method === 'object' || ! method ) {
return methods.init.apply( this, arguments );
} else {
$.error( 'Method ' + method + ' does not exist on jQuery.tooltip' );
}
};
var geo = new $(document).codeAddress(); // Initialize the object
});
テンプレートとしてjQuery Docs Plugin/Authoringに依存し、そこから段階的に作業を開始しました。理想的には、ドキュメントの準備ができたときに init() を独自にロードしますが、ロードしないので、オブジェクトを初期化するために最後から 2 行目を追加しました。
マップは、最初にメソッド latlng() を使用して init() で作成され、描画されます。ここで、6 行目の this.latlng(input) Uncaught TypeError: Object [object Object] has no method 'latlng' というエラーが発生します。その後、onclick イベントハンドラが auto() を呼び出して、受け取った入力に応じてマップを再描画します。
私の説明やコードがジャンクショーである場合は、お詫び申し上げます。学びながら頑張っています。