我在 Firefox 上遇到了一个奇怪的问题,在 safari 上似乎没有发生。
有一个包含一组行的表,每行都有自己的 onclick 和 ondblclick 事件。当双击其中一个对象时,它首先触发 onclick 关联函数(如预期的那样),其中另一行(与双击的不同)被删除。之后,与 dblclick 关联的函数将不会触发。
如果我评论删除该行的行(不是单击的行,如我所说,而是另一个),那么 onclick 和 ondblclick 事件都会触发...我附上这两个事件函数的代码:
ret.onclick = function(){
// Trigger click event
var evt = arguments[0] || window.event;
self.signalClick(evt.target || evt.srcElement);
if(elem == this.selected) return;
if(self.selected != null){
// Set list element to not selected
var telem = document.getElementById(self.getChildID(self.selected['id']));
telem.setAttribute('class', 'gui_list_uselected');
// Remove previously selected element summary
var telemexp = document.getElementById(self.getChildID(self.selected['id']) + '_exp');
if(telemexp) telemexp.parentNode.removeChild(telemexp); // FAULTY LINE!
}
ret.setAttribute('class', 'gui_list_selected');
self.selected = elem;
// Add element summary to the list
appendAfter(ret, self.drawSummary(elem));
};
ret.ondblclick = function(){
// Trigger double click event
var evt = arguments[0] || window.event;
self.signalDblClick(evt.target || evt.srcElement);
};