Word Order Exercise
About this app
Exercise to practice word order
Word Order Exercise Word Order Exercise Check Reset
Put this on your site
Source
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Word Order Exercise</title>
<meta name="description" content="Exercise to practice word order">
<meta name="keywords" content="word order, exercise">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<script type="text/javascript">
try {
// App Javascript Goes Here. Place your entire script content inside the try block for error handling.
document.addEventListener("DOMContentLoaded", function() {
// Array of word groups
var wordGroups = [
['Put', 'the', 'apples', 'in', 'a', 'dish.'],
['Mix', 'some', 'butter', 'and', 'flour', 'in', 'a', 'bowl.'],
['Serve', 'the', 'soup', 'in', 'the', 'small', 'bowls.'],
['Slice', 'the', 'potatoes', 'with', 'this', 'knife.'],
['I', 'made', 'an', 'apple', 'pie', 'at', 'school.'],
['Fry', 'the', 'chicken', 'in', 'a', 'pan.']
];
// Function to shuffle the word groups
function shuffleWordGroups() {
for (var i = wordGroups.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var temp = wordGroups[i];
wordGroups[i] = wordGroups[j];
wordGroups[j] = temp;
}
}
// Function to create the word order exercise
function createWordOrderExercise() {
var exerciseContainer = document.getElementById('exercise-container');
// Clear previous exercise
exerciseContainer.innerHTML = '';
// Shuffle word groups
shuffleWordGroups();
// Create word order exercise
for (var i = 0; i < wordGroups.length; i++) {
var wordGroup = wordGroups[i];
var exerciseItem = document.createElement('div');
exerciseItem.classList.add('exercise-item');
for (var j = 0; j < wordGroup.length; j++) {
var word = wordGroup[j];
var wordButton = document.createElement('button');
wordButton.classList.add('word-button');
wordButton.innerHTML = word;
wordButton.setAttribute('data-word', word);
exerciseItem.appendChild(wordButton);
}
exerciseContainer.appendChild(exerciseItem);
}
}
// Function to handle word button click
function handleWordButtonClick(event) {
var wordButton = event.target;
// Check if the word button is already selected
if (wordButton.classList.contains('selected')) {
// Deselect the word button
wordButton.classList.remove('selected');
} else {
// Select the word button
wordButton.classList.add('selected');
}
}
// Function to handle check button click
function handleCheckButtonClick() {
var exerciseItems = document.getElementsByClassName('exercise-item');
// Loop through each exercise item
for (var i = 0; i < exerciseItems.length; i++) {
var exerciseItem = exerciseItems[i];
var selectedWords = exerciseItem.getElementsByClassName('selected');
// Check if the selected words are in correct order
var isCorrectOrder = true;
for (var j = 0; j < selectedWords.length - 1; j++) {
var currentWord = selectedWords[j];
var nextWord = selectedWords[j + 1];
if (currentWord.compareDocumentPosition(nextWord) !== Node.DOCUMENT_POSITION_FOLLOWING) {
isCorrectOrder = false;
break;
}
}
// Add appropriate class to the exercise item
if (isCorrectOrder) {
exerciseItem.classList.add('correct');
} else {
exerciseItem.classList.add('incorrect');
}
}
}
// Function to handle reset button click
function handleResetButtonClick() {
var exerciseItems = document.getElementsByClassName('exercise-item');
// Loop through each exercise item
for (var i = 0; i < exerciseItems.length; i++) {
var exerciseItem = exerciseItems[i];
// Remove the selected and correct/incorrect classes
exerciseItem.classList.remove('selected');
exerciseItem.classList.remove('correct');
exerciseItem.classList.remove('incorrect');
}
}
// Attach event listeners
var exerciseContainer = document.getElementById('exercise-container');
exerciseContainer.addEventListener('click', function(event) {
var target = event.target;
// Check if the clicked element is a word button
if (target.classList.contains('word-button')) {
handleWordButtonClick(event);
}
});
var checkButton = document.getElementById('check-button');
checkButton.addEventListener('click', function() {
handleCheckButtonClick();
});
var resetButton = document.getElementById('reset-button');
resetButton.addEventListener('click', function() {
handleResetButtonClick();
});
// Create initial word order exercise
createWordOrderExercise();
});
} catch (error) {
// This will throw the error to the parent window.
throw error;
}
</script>
<style>
/* App CSS Goes Here */
body {
font-family: 'Arial', sans-serif;
margin: 0;
padding: 0;
background-color: #f2f2f2;
}
.container {
max-width: 800px;
margin: 0 auto;
padding: 20px;
}
h1 {
text-align: center;
color: #333;
}
.exercise-item {
margin-bottom: 20px;
background-color: #fff;
padding: 20px;
border-radius: 5px;
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);
}
.word-button {
display: inline-block;
border: none;
background-color: #eee;
color: #333;
padding: 10px 20px;
margin: 5px;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s;
}
.word-button:hover {
background-color: #ddd;
}
.selected {
background-color: #333;
color: #fff;
}
.correct {
background-color: #d4edda;
}
.incorrect {
background-color: #f8d7da;
}
.button-container {
text-align: center;
margin-top: 20px;
}
.button-container button {
border: none;
background-color: #333;
color: #fff;
padding: 10px 20px;
margin: 5px;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s;
}
.button-container button:hover {
background-color: #555;
}
</style>
</head>
<body>
<div id="main-container" class="container">
<h1>Word Order Exercise</h1>
<div id="exercise-container"></div>
<div class="button-container">
<button id="check-button">Check</button>
<button id="reset-button">Reset</button>
</div>
</div>
</body>
</html>
NEW APPS
These are apps made by the community!