Bonjours à tous , alors j'ai un site web sur le drag and drop , chaque élément que je déplace ont un code html spécifique , or a chaque fois que je place deux fois le même élément il se duplique dans mon code , par exemple en plaçant un élément je fais apparaître un cadre , et bien si j'en replace un il se place aussi et je me retrouve avec deux div . Une âme charitable s'il vous plait.
Ceci est le code complet:
je pense que mon soucis viens de là:
Ce que je veux :
Ce que j'ai ... :
En gros je veux écraser l'ancien cadre si vous préférez , soit ça soit vérifier a chaque fois qu'il ne doit pas placez un élément déjà placer .
Désoler de la longue lecture mais vous êtes mon dernier recours . Merci de vos futures réponses[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
Modifié par jattaquelejquery (12 Jun 2015 - 16:13)
Ceci est le code complet:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Drag Demo</title>
<style>
div#modele {
width:20%;
height:600px;overflow:auto;
border:3px solid black;
}
.page {
position:absolute;
margin-left:20%;
margin-top: -55%;
width:80%;
height:700px;
}
.cadre {
position:absolute;
margin-left:20%;
margin-top: 10%;
width:70%;
height:500px;
background-color:cyan;
border:3px solid black;
z-index: -5;
}
.footer {
position:absolute;
bottom:0;
background-color:#00FF00;
width:100%;
text-align:center;
}
.header {
position:absolute;
background-color:#00FF00;
width:100%;
text-align:center;
}
.middle {
position:absolute;
top:95px;
background-color:#00FF00;
width:45%;
}
.middle2 {
position:absolute;
top:95px;
right:0px;
width:45%;
}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
</head>
<body>
<div id="modele">
<script>
</script>
</div>
<input type="button" value="Recommencer" Onclick="javascript:window.history.go(0)">
<div
class="page">
</div>
<script>
function widget(iname, iimg, itype, ihtml) {
this.nom=iname;
this.image=iimg;
this.type=itype;
this.html=ihtml;
}
var arraywidget=new Array();
arraywidget.push(new widget("form", "./0.jpg", "form", "<div class=cadre></div>"));
arraywidget.push(new widget("barre haute", "./1.jpg", "topbar","<div class=header><form action='x' method='post'>Identification :<input type='text' name='login' />Mot de passe :<input type='password' name='pass' /></form></div>"));
arraywidget.push(new widget("list", "./2.jpg", "liste", "<div class=middle><ul> <li> Article 1 </li> <li> Article 2 </li> <li> Article 3 </li><li> Article 4 </li><li> Article 5 </li> <li> Article 6 </li><li> Article 7 </li><li> Article 8 </li><li> Article 9 </li><li> Article 10 </li></ul></div>"));
arraywidget.push(new widget("img", "./3.jpg", "image", "<div class=middle2><img src='octog.jpg'</div>"));
arraywidget.push(new widget("barre basse", "./4.jpg", "bottombar", "<div class=footer><form action='x' method='post'><div><label for='nom'>Nom : </label><input type='text' id='nom' /></div><div><label for='courriel'>Courriel :</label><input type='email' id='courriel' /></div><div><label for='message'> Message :</label><textarea id='message'></textarea></div><div class='button'><button type='submit'>Envoyer votre message</button></div></form></div>"));
for(i=0; i < arraywidget.length; i++) {
$("#modele").append(" <img class='drag' src='"+arraywidget[i].image+"' data_type='"+arraywidget[i].type+"' width='225' height='133' /><hr /> ");
}
setTimeout(initdrag, 200) ;
function initdrag() {
$(".drag").draggable({revert:true,helper:"clone"}) ;
$(".page").droppable({
drop:function(event, ui){
if($(ui.draggable).attr("data_type")=="form") {
for(i=0; i < arraywidget.length; i++) {
if(arraywidget[i].type=="form"&arraywidget[i].nom=="form")
$(this).append(arraywidget[i].html);
setTimeout(dropInCadre, 200)
}
}
}
});
}
$(".drag").draggable({revert:true,helper:"clone"}) ;
function dropInCadre() {
$(".cadre").droppable({
drop:function(event, ui){
for(i=1; i < arraywidget.length; i++) {
if(arraywidget[i].type==$(ui.draggable).attr("data_type"))
$(this).append(arraywidget[i].html);
}
}});
}
</script>
</body>
je pense que mon soucis viens de là:
$(".page").droppable({
drop:function(event, ui){
if($(ui.draggable).attr("data_type")=="form") {
for(i=0; i < arraywidget.length; i++) {
if(arraywidget[i].type=="form"&arraywidget[i].nom=="form")
$(this).append(arraywidget[i].html);
Ce que je veux :
<div class="page ui-droppable">
<div class="cadre"></div></div>
Ce que j'ai ... :
<div class="page ui-droppable">
<div class="cadre ui-droppable"></div><div class="cadre ui-droppable"></div></div>
En gros je veux écraser l'ancien cadre si vous préférez , soit ça soit vérifier a chaque fois qu'il ne doit pas placez un élément déjà placer .
Désoler de la longue lecture mais vous êtes mon dernier recours . Merci de vos futures réponses[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
Modifié par jattaquelejquery (12 Jun 2015 - 16:13)