Refactor answer click handling to prevent duplicate event listeners on the new mark2 page; streamline state management for answer marking.
This commit is contained in:
+16
-14
@@ -20,25 +20,27 @@ $(document).ready(function () {
|
||||
//$(".answer-list li").each(function (index, element) {
|
||||
// $(element).append($("<span class='google-link' title='search for answer with google'><a href='https://www.google.com/search?q=" + $(element).text() + "' target='_blank'>G</a></span>"));
|
||||
//});
|
||||
// Legacy per-element click handler: skip on the new mark2 page which
|
||||
// manages clicks via a delegated handler (it uses #answer-list). This
|
||||
// prevents duplicate/colliding handlers when mark2 is rendered.
|
||||
if (!document.getElementById('answer-list')) {
|
||||
$(".answer-list span.answer").each(function (index, element) {
|
||||
console.log(element);
|
||||
|
||||
$(".answer-list span.answer").each(function (index, element) {
|
||||
console.log(element);
|
||||
$(element).click(function (e) {
|
||||
|
||||
$(element).click(function (e) {
|
||||
var classes = ['answer correct', 'answer half-correct', 'answer incorrect'];
|
||||
$(element).each(function () {
|
||||
let mark = classes[($.inArray(this.className, classes) + 1) % classes.length];
|
||||
this.className = mark
|
||||
this.dataset.newmark = mark.split(" ")[1]
|
||||
});
|
||||
|
||||
prepAnswerData();
|
||||
|
||||
var classes = ['answer correct', 'answer half-correct', 'answer incorrect'];
|
||||
$(element).each(function () {
|
||||
let mark = classes[($.inArray(this.className, classes) + 1) % classes.length];
|
||||
this.className = mark
|
||||
this.dataset.newmark = mark.split(" ")[1]
|
||||
});
|
||||
|
||||
prepAnswerData();
|
||||
|
||||
|
||||
|
||||
});
|
||||
});
|
||||
}
|
||||
prepAnswerData();
|
||||
|
||||
if ($(".post-form").length > 0) {
|
||||
|
||||
Reference in New Issue
Block a user