如何在JavaScript中为刚刚创建的对象添加操作?

时间:2012-10-23 09:28:08

标签: javascript jquery javascript-events

我有一些奇怪的问题,动作添加到动态创建的对象。问题是,当我添加它时,与分配动作一起,动作是自动完成的,而不是通过按下鼠标按钮。现在,在基于之前功能的一些变化之后,我所取得的成就完全不起作用。

    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来执行某些操作。

多次阅读此源代码后,我仍无法找到任何错误。

非常感谢您提前

2 个答案:

答案 0 :(得分:0)

不确定,但这一行

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

与此行不相配

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

您无法将事件处理程序附加到数组。

答案 1 :(得分:0)

由于您标记了,因此您可以使用.on()