问题
How can I detect when a details element is opened or closed in Javascript? Other than attaching a listener to the click function and checking if the open attribute is set or not.
回答1:
You can do something like this:
<details id="element">
<p>Details</p>
</details>
<script>
var isOpen = ($("#element").attr("open") == "open");
alert ("Open = " + isOpen);
</script>
回答2:
You can use the toggle event:
var details = document.querySelector("details")
details.addEventListener("toggle", function() {
details.firstChild.textContent = "done"
})
<!doctype html>
<details>
<summary>toggle event</summary>
</details>
回答3:
In jQuery you can catch the event using .on('toggle')
like this:
$('#detail-id').on('toggle', function() {
//code
});
来源:https://stackoverflow.com/questions/7363117/detecting-the-opening-or-closing-of-a-details-element