Когда вы удаляете событие, вам нужно передать идентичную функцию, которую вы использовали для его добавления.
Когда вы добавляете обработчик событий, который вы использовали: function() { stopstretching(watcherObj); }
для mouseup
и function() { stopstretching(watcherObj); }
для mouseout
(эти два разных)
Поэтому, когда вы удаляете, вы не можете просто использовать stopstretching
, потому что это не тот, который вы добавили. Может быть, вы можете иметь что-то вроде
function stopHandler() {
stopstretching(watcherObj, stopHandler);
}
addEvent(dragWorkspaceObj, 'mouseup', stopHandler);
addEvent(dragWorkspaceObj, 'mouseout', stopHandler);
И
function stopstretching(watch, handler) {
watcherObj = null;
removeEvent(document.getElementById("dragWorkspace"), 'mouseup', handler);
removeEvent(document.getElementById("dragWorkspace"), 'mouseout', handler);
Код не проверен, но я думаю, что он должен работать.