0

動的に作成されたオブジェクトにアクションを追加する際に、奇妙な問題が発生します。追加するときは、アクションの割り当てとともに、マウスボタンを押すのではなく、アクションが自動的に実行されます。さて、以前の機能に基づいていくつかの変更を加えた後、私が達成したことは完全に機能していないアクションです。

    optionsList = {
    Elements: new Array(),
    El: '',
    initialMouseX: undefined,
    initialMouseY: undefined,
    startX: undefined,
    startY: undefined,
    dXKeys: undefined,
    dYKeys: undefined,
    zeroX: undefined,
    zeroY: undefined,
    draggedObject: undefined,
    initListElement: function (element,type) 
    {
        if (!this.Elements[element.id])
        {
            this.Elements[element.id] = new Array();
            console.log("added new element with id: " + element.id);
        }
        if (typeof element == 'string')//jeśli element jest stringiem
        {
            element = document.getElementById(element);
        }

        this.Elements[element.id].type = type;
        addEventSimple(this.Elements[element.id],'mousedown',optionsList.showControls);
        console.log("element type: " + this.Elements[element.id].type + " id: " + element.id);
        return false;
    },

    showListControls: function(e)
    {
        var evt = e || window.event;
        optionList.showControls(this,evt);
        return false;
    },

    /*******************************************/
    /*The function*/
    showControls: function(obj,e)
    {
        console.log("Item pressed id is: " + obj.id);
        return false;
    }
}

ソースコード全体がかなり長いので、ここに投稿しました:http: //jsfiddle.net/sebap123/smu3E/0/

エラー(または機能していない関数)はJSコードの下部にあります。私が達成したいのは、白いテキストが押されたときに、オブジェクトのタイプまたはIDに基づいて何らかのアクションが発生することです。

このソースコードを何度も読んだ後でも、間違いがあるところを見つけることができません。

事前にどうもありがとうございました

4

2 に答える 2

0

にタグを付けたので、 を使用できます.on()

于 2012-10-23T13:23:54.500 に答える
0

よくわかりませんが、この行

this.Elements[element.id] = new Array();

はこの線に沿っていません

addEventSimple(this.Elements[element.id],'mousedown',optionsList.showControls);

イベントハンドラを配列にアタッチすることはできません。

于 2012-10-23T13:21:07.923 に答える