1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
| <!DOCTYPE html>
<html lang="fr" dir="ltr">
<head>
<meta http-equiv="cache-control" content="public, max-age=60">
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1.0">
<meta name="author" content="Daniel Hagnoul">
<title>Test</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/sunny/jquery-ui.min.css">
<style>
.dragAble {
width: 160px; height: 37px;
border: 1px solid #888888;
background: #f0f0f0;
margin: 10px 0;
}
.dragAble p, .dropAble p {
font-size: 15px;
text-align: center;
margin-top: 9px;
}
.dragAble p:hover, .dropAble p:hover {
cursor: default;
}
.dropAble {
width: 160px; height: 40px;
border: 2px dashed #888888;
margin: 10px 0;
}
.highlight {
border: 2px solid yellow;
background-color:yellow;
}
.vrai { border: 2px dashed green; }
.faux { border: 2px dashed red; }
</style>
</head>
<body>
<div id="content">
<div class="dragAble" data-q ="0" data-r="a">
<p>Blanc</p>
</div>
<div class="dragAble" data-q ="0" data-r="b">
<p>Cheval</p>
</div>
<div class="dragAble" data-q ="0" data-r="c">
<p>Henri IV</p>
</div>
<div class="dropAble" data-q="1">
<p>Couleur ?</p>
</div>
<div class="dropAble" data-q="2">
<p>Animal ?</p>
</div>
<div class="dropAble" data-q="3">
<p>Prénom ?</p>
</div>
</div>
<div id="result"></div>
<button id="check">Check</button>
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
"use strict";
$( function(){ // forme abrégée de $(document).ready( function( ){
$('.dragAble').draggable({
"containment" : "#content",
"cursor" : "move",
//"snap" : ".dropAble",
"stack" : ".dragAble",
"start" : function(){ // reset
$( ".dropAble" ).removeClass( "vrai faux" );
$( "#result" ).empty();
$( this ).data( "q", "0" );
}
});
$( ".dropAble" ).droppable({
"accept" : ".dragAble",
"hoverClass" : "highlight",
"drop" : function( event, ui ){
$( ui.draggable ).data( "q", $( this ).data( "q" ) );
}
});
$( "#check" ).on( "click", function( event ){
var
correctAnswers = [ "1-a", "2-b", "3-c" ],
boolResult = [],
boolOK = true,
results = [];
$( ".dragAble" ).each( function( i, item ){
results.push( $( item ).data( "q" ) + "-" + $( item ).data( "r" ) );
});
$.each( results, function( index, value ){
boolResult.push( ( $.inArray( value, correctAnswers ) == -1 ) ? ( false ) :( true ) );
});
$.each( boolResult, function( i, item){
$( ".dropAble" ).eq( i ).addClass( ( item ) ? ( "vrai" ) : ( boolOK = false, "faux" ) );
});
if ( boolOK ){
$( "#result" ).html( '<p>Les réponses sont correctes.</p>' );
} else {
$( "#result" ).html( '<p>Une ou plusieurs réponses sont fausses ou manquantes.</p>' );
}
});
});
</script>
</body>
</html> |
Partager