Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732

    [jQuery] drag & drop. ma prima di droppare controlla se c'è già

    ho bisogno di realizzare, tramite jquery, una piccola form creata dinamicamente tramite drag & drop. tutto figoso, però ho bisogno, prima di effettuare il drop, di controllare che non ci sia già un elemento con lo stesso id

    questo è il mio attuale codice.

    codice:
    <script type='text/javascript'>
    	$(document).ready(function(){
    		$(".imgblock").draggable({helper: 'clone'});
    		$("#drop").droppable({
    			accept: ".imgblock",
    			drop: function(ev, ui) {
    				var img_src = $(ui.draggable).attr('src');
    				var img_id = $(ui.draggable).attr('id');
    				var tag_img = "[img]" + img_src + "[/img]";
    				var tag_id = "<input type='text' name='id' value='" + img_id + "'>";
    				var text_id = "<input type='text' name='description' value='" + img_id + "'>";
    				$('#listfiles').append('
    ' + tag_img + tag_id + text_id);
    			}
    		});
    	});
    </script>
    cioè adesso funziona tutto, però non facendo il controllo mi trovo con degli elementi duplicati e non ha nessun senso... come posso evitare questo comportamento? ho provato a sfogliare la documentazione di jquery, ma non ho trovato nulla che facesse al caso mio...

  2. #2

  3. #3
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    c'è un parametro connectWith o qualcosa di simile ch eti permettere di togliere da una parte e droppare dall'altra, forse fa al caso tuo

  4. #4
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    sto provando con connectWith, e sembra funzionare... ma ha uno strano comportamento: i blocchi vengono disposti in maniera apparentemente casuale :master:

    Codice PHP:
    <html>
    <
    head>
        <
    script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
        <script type="text/javascript" src="http://dev.jquery.com/view/tags/ui/1.5b2/ui.base.js"></script>
        <script type="text/javascript" src="http://dev.jquery.com/view/tags/ui/1.5b2/ui.sortable.js"></script>
        <script type="text/javascript" src="http://dev.jquery.com/view/tags/ui/1.5b2/ui.draggable.js"></script>
        
        <script type='text/javascript'>
            $(document).ready(function(){
                $('#elenco1 .block').draggable({
                    cursor: 'move',
                    connectToSortable: '#target'
                });

                $('#target').sortable({
                    cursor: 'move',
                    connectWith: ['#elenco1']
                });
            }); 
        </script>
        <style type='text/css'>
            #elenco1 {
                float: left;
                display: block;
                height: 200px;
                width: 100px;
                background-color: #999;
                }
            .block {
                display: block;
                height: 20px;
                width: 30px;
                margin: 5px;
                }
            #target {
                display: block;
                vertical-align: top;
                text-align: left;
                margin-left: 150px;
                height: 200px;
                width: 100px;
                background-color: #bdf;
                }
        </style>
    </head>
    <body>
    <div id='elenco1'>
        <div class='block' style='background-color:#aaa;'></div>
        <div class='block' style='background-color:#ccc;'></div>
        <div class='block' style='background-color:#eee;'></div>
    </div>
    <div id='target'></div>

    </body>
    </html> 

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.