سؤال

أحاول استنساخ كائن قابل للإسقاط باستخدام Jquery ولكن الكائن المستنسخ غير قابل للإسقاط.

$(document).ready(function(){
$("input[value='Add']").click(function(e){
e.preventDefault();
$("div.field:last").clone().insertAfter("div.field:last");
});

$(".field").droppable();

لغة البرمجة

<div class="field">
Last Name<input type="text" value="" />
First Name<input type="text" value="" />
</div>
<div class="field">
Last Name<input type="text" value="" />
First Name<input type="text" value="" />
</div>
<input type="Submit" name="submit" value="Add" /> 

يوضح Firebug أن الكائن المستنسخ يحتوي على فئة ui-droppable أيضًا، هل لديك أي فكرة عن سبب عدم نجاحه؟

يحرر
إعداد bool(true) أو تسلسل الكائن المستنسخ باستخدام .droppable() لا يعمل أيضًا

هل كانت مفيدة؟

المحلول 2

لقد اكتشفت طريقة لتحقيق ذلك، باستخدام .live، وأنا أستخدم مكونًا إضافيًا .livequery الذي يعمل بشكل مشابه تمامًا لـ .live

عندما تربط حدثًا "مباشرًا"، فإنه سيتم ربطه بجميع العناصر الحالية والمستقبلية على الصفحة

$("input[value='Add']").livequery("click", function(e){
e.preventDefault();
$("div.field:last").clone().insertAfter("div.field:last");
$("div.field").droppable();

نصائح أخرى

تحتاج إلى نسخ الأحداث إلى النسخة؛يمر true ل clone():

$("div.field:last").clone(true).insertAfter("div.field:last");

قد تحتاج أيضًا إلى نسخ بعض البيانات من النسخة الأصلية:

var original = $("div.field:last");
var clone = original.clone(true);
clone.data( 'droppable', jQuery.extend(true, {}, original.data('droppable')) );
/* Untested! */
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top