2

私はまだJavaScriptの初心者のようなものです. jsでプログラミングするときは、モジュールを使用するのが望ましいことを理解しました。これにより、js のイベントについて考えるようになりました...たとえば、このオブジェクトがあるとしますMonkey

function Monkey(color, position){
   this.color = color;
   this.position = position;
   this.jumpAround = function() {
      /* jumps around and screams */
   };
}

そして、webapp で相互作用する 、 、 を使用してmonkeys、このようなアプリ全体を構築したとします。その場合、イベントをどのように処理する必要がありますか? グローバル名前空間にコールバック関数を実装するだけですか? お気に入り:giraffesshih tzus

//objects
var monkey = new Monkey(brown, pos);
var giraffe = new Giraffe(yellow, pos);
var shih_tzu = new Shih_tzu(white, pos);

//event handlers
this_and_that.onclick = function() { /* this and that happens */ }
...

そして、このファイルを html ヘッダーに含めますか? たぶん、これは明白な答えを持つばかげた質問ですが、それでも私には、良いベストプラクティスがないように思えます...

4

3 に答える 3

1

私が質問を理解しているかどうかは完全にはわかりませんが、繰り返しによって引き起こされた JavaScript でのイベントの上書きを処理することを意味する場合は、次のelem.onclick = function() {}関数を使用します。

function addEvent(obj,event,func)
{
    if(typeof func !== 'function')
    {
        return false;
    }
    if(typeof obj.addEventListener == 'function' || typeof obj.addEventListener == 'object')
    {
        return obj.addEventListener(event.replace(/^on/,''), func, false);
    }
    else if(typeof obj.attachEvent == 'function' || typeof obj.attachEvent == 'object')
    {
        return obj.attachEvent(event,func);
    }
}
addEvent(this_and_that,'onclick',function(e) {
    //do stuff
});
于 2013-08-05T15:38:41.617 に答える