1

mouseup選択した HTML 要素からイベント リスナーのみを削除したいと考えています。

以下のコードを使用しましたが、すべてのリスナーが削除されます。

var old_element = divs[d];
                var new_element = old_element.cloneNode(true);
                old_element.parentNode.replaceChild(new_element, old_element);

これは、イベント リスナーをアタッチする方法です。

var divs = document.getElementsByTagName('body');// to enhance the preformance
for(var d in divs) { 
        try{             
            if (divs[d].addEventListener) {
                 divs[d].addEventListener('mouseup',callHighlight);
            } else {
                divs[d].attachEvent('mouseup', callHighlight);
            } 
        }catch(err){
            //alert(err.message);
        }
}       
4

3 に答える 3

1

明らかにすべてのイベントを削除する replacechild の代わりにremoveEventListenerを使用する必要があります。

 old_element.removeEventListener('mouseup', handler);
于 2013-10-14T02:23:54.230 に答える