即时通讯使用mootools从元素中获取id并且它不起作用,它将id和null对齐。
$$(".obj").addEvent("click",function(){
var objid=this.get("id");
alert(objid);
});
这通常在jsfiddle中工作,但如果你尝试在你的内部代码,它不会。它将一个接一个地带回2个警报,一个带有id,一个带有null。
为什么会这样?
这就是整件事
答案 0 :(得分:2)
关于mootools文档的简短阅读我认为你的问题可以通过这种方式解决:
$$(".obj").addEvent("click",function(e){
var objid = $(this).get("id");
e.stop();
});
此力事件传播停止而不是向祖先传播。
答案 1 :(得分:2)
如果它在jsfiddle中有效,那么它可以工作。问题出在你的其余代码中。
$$
返回元素集合。如果在元素集合上调用Element
方法,它会在每个元素上神奇地调用它(很像jQuery)。我的猜测是,正如其他人所指出的那样,你有一个冒泡的问题。单击一个.obj
时,您还要单击共享该类的父元素。
http://jsfiddle.net/rpflorence/hgXWm/4/
http://jsfiddle.net/rpflorence/hgXWm/5/
您只需使用event.stopPropagation()
此外,在您的原始代码中,您不需要ID。所有$(objId)都没用,你已经有了this
。只是使用它,它与$(objId)相同,除了更快,因为你已经得到它。
答案 2 :(得分:0)
很难说没有看到标记。也许点击的元素有一个祖先,它也有“obj”类但没有ID。点击会冒泡到祖先。