Seret dan lepas dinamis untuk membangun sebuah kata

Apakah ada cara saya dapat mengubah drag and drop sederhana ini menjadi lebih dinamis yang dapat membantu membangun sebuah kata dalam urutan acak. Kode di bawah ini adalah drag and drop sederhana:

$(".draggable").draggable({
                    revert: 'invalid',
                    start: function (event, ui) {
                        result.fadeOut(1000);

                    },
                    stop: function (event, ui) {
                        if (!$(this).hasClass('correct')) {
                            result.html("Try again that's a " + $(this).attr("id")).fadeOut(100);
                            result.fadeIn(1000);

                                }
                            });
                        }

                    }
                });


                $(".droppable").droppable({
                    accept: '.correct',
                    drop: function (event, ui) {

                        correctResult.fadeIn(1000);
                        correctResult.prepend('Well done! You found the ' + ui.draggable.attr('id') + ' ');

                            }
                        });

                    }
                });
            });

Apakah ada cara untuk mengubah kode sederhana ini agar sesuai dengan fungsi yang lebih dinamis, atau mungkin sudut pandang yang berbeda untuk mengatasi hal ini.

Berikut adalah kode untuk 'kata' urutan acak:

string word = words[correctImageIndex].engWord;
List<char> wordChar = word.ToList();
Random random = new Random(wordChar.Count);
List<int> selectedIndexes = new List<int>();                             

                        <br /><br />


                         foreach (var letter in wordChar)
                         {
                             int index = wordChar.IndexOf(letter);
                             int randomNumber =random.Next(0, wordChar.Count);
                             while (randomNumber == index || selectedIndexes.Contains(randomNumber))
                             {
                                 randomNumber = random.Next(0, wordChar.Count);
                             }

                            <img class="draggable correct" src="~/Image/DrawLetters?letter=@wordChar[randomNumber]">
                             selectedIndexes.Add(randomNumber);
                         }

                         <br />

                         foreach (var letter in wordChar)
                         {
                                <img class="droppable" src="~/Content/Images/horizontal.gif" style="width:50px; height:20px;" />
                         }

Saat ini kata-kata tersebut melakukan drag dan drop dan pengguna dapat membangun kata tersebut, namun tidak ada logika/fungsi pada drag and drop ini yang memeriksa sebuah huruf hanya dapat dijatuhkan di lokasi yang benar dan hanya huruf itu. Ini akan memastikan bahwa hanya kata asli yang dapat dibuat.


person Lulutho Mgwali    schedule 09.08.2015    source sumber


Jawaban (1)


Saya sarankan Anda memiliki slot yang dapat dijatuhkan untuk setiap elemen yang dapat diseret dan membuatnya hanya menerima ID elemen tertentu yang dapat diseret:

    $(".droppable1").droppable({
                        accept: '.correct1',
                        drop: function (event, ui) {

                            correctResult.fadeIn(1000);
                            correctResult.prepend('Well done! You found the ' + ui.draggable.attr('id') + ' ');

                                }
                            });

                        }
                    });
                });



$(".droppable2").droppable({
                        accept: '.correct2',
                        drop: function (event, ui) {

                            correctResult.fadeIn(1000);
                            correctResult.prepend('Well done! You found the ' + ui.draggable.attr('id') + ' ');

                                }
                            });

                        }
                    });
                });

dll....

person Diza    schedule 27.08.2015