Skip to content

Commit

Permalink
The toggle event does not bubble
Browse files Browse the repository at this point in the history
  • Loading branch information
javan committed Jan 23, 2019
1 parent a37986d commit 62cf9b5
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ function onTogglingTrigger(callback) {

function triggerToggle(element) {
const event = document.createEvent("Event")
event.initEvent("toggle", true, false)
event.initEvent("toggle", false, false)
element.dispatchEvent(event)
}

Expand Down
26 changes: 26 additions & 0 deletions test/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,32 @@ test("click <summary> child toggles content", (assert) => {
)
})

test("toggle event does not bubble", (assert) => {
const done = assert.async()

const container = getElement("container")
const element = getElement("details")

let toggleEventCount = 0
element.addEventListener("toggle", () => toggleEventCount++)

let bubbledToggleEventCount = 0
container.addEventListener("toggle", () => bubbledToggleEventCount++)

element.open = true
defer(() => {
assert.equal(toggleEventCount, 1)
assert.equal(bubbledToggleEventCount, 0)

element.open = false
defer(() => {
assert.equal(toggleEventCount, 2)
assert.equal(bubbledToggleEventCount, 0)
done()
})
})
})

function getElement(id) {
return document.getElementById(id)
}
Expand Down

0 comments on commit 62cf9b5

Please sign in to comment.