3
我在Firefox上遇到了一個奇怪的問題,它似乎不會在Safari上發生。DOM元素dblclick事件在刪除dom元素後發生單擊事件後發生變化
有一組表有一組行,每一行都有自己的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);
};
它已經被解決了。 問題出現在「if(elem == this.selected)return;」這行,它必須是self.selected,才能引用類,而不是DOM對象... – gaspercat 2012-04-28 13:42:17