Skip to content

Commit

Permalink
Merge pull request #1357 from openkraken/fix/removeEventListener
Browse files Browse the repository at this point in the history
Fix/remove event listener
  • Loading branch information
answershuto committed Apr 25, 2022
2 parents f8db9b6 + cd753f9 commit 6891473
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 1 deletion.
2 changes: 1 addition & 1 deletion bridge/bindings/qjs/dom/event_target.cc
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ JSValue EventTarget::removeEventListener(JSContext* ctx, JSValue this_val, int a
JS_FreeValue(ctx, callback);
}

if (eventHandlers.empty() && eventTargetInstance->m_eventHandlerMap.contains(eventType)) {
if (eventHandlers.empty() && !eventTargetInstance->m_eventHandlerMap.contains(eventType)) {
// Dart needs to be notified for handles is empty.
int32_t contextId = eventTargetInstance->prototype()->contextId();

Expand Down
28 changes: 28 additions & 0 deletions integration_tests/specs/dom/nodes/event-target.ts
Original file line number Diff line number Diff line change
Expand Up @@ -171,4 +171,32 @@ describe('DOM EventTarget', () => {
expect(shouldNotBeTrue).toEqual(false);
});


it('removeEventListener should work', (done) => {
let num = 0;
var ele = createElement('div', {
style: {
width: '100px',
height: '100px',
background: 'red'
}
});
document.body.appendChild(ele);
ele.addEventListener('click', fn1);
ele.removeEventListener('click', fn1);
ele.addEventListener('click', fn2);

function fn1() {
num++;
}

function fn2() {
num++;
expect(num).toEqual(1);
done();
}

ele.click();
});

});

0 comments on commit 6891473

Please sign in to comment.