我有一些奇怪的问题,动作添加到动态创建的对象。问题是,当我添加它时,与分配动作一起,动作是自动完成的,而不是通过按下鼠标按钮。现在,在基于之前功能的一些变化之后,我所取得的成就完全不起作用。
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来执行某些操作。
多次阅读此源代码后,我仍无法找到任何错误。
非常感谢您提前
答案 0 :(得分:0)
不确定,但这一行
this.Elements[element.id] = new Array();
与此行不相配
addEventSimple(this.Elements[element.id],'mousedown',optionsList.showControls);
您无法将事件处理程序附加到数组。
答案 1 :(得分:0)
由于您标记了jquery,因此您可以使用.on()
。