删除dom元素后单击事件后,DOM元素dblclick事件发生更改

时间:2012-04-28 09:44:04

标签: javascript dom javascript-events

我在Firefox上遇到了一个奇怪的问题,似乎没有在safari上发生。

有一个包含一组行的表,每个行都有自己的onclick和ondblclick事件。当双击其中一个对象时,它首先触发onclick相关函数(如预期的那样),其中删除另一行(不同于双击的那一行)。之后,与dblclick相关联的功能将不会触发。

如果我评论删除行的行(不是单击的那行,正如我所说,而是另一行),那么onclick和ondblclick事件都将触发......我附上了两个事件函数的代码: / p>

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);
};

1 个答案:

答案 0 :(得分:0)

Firefox正常运行。根据{{​​3}},无论如何都会在ondblclick之前触发onclick。 看看这个spec来克服这个问题。