จนกระทั่งเมื่อไม่นานมานี้ ฉันได้ตั้งค่านี้ ซึ่งถูกเรียกหลายครั้ง:
$('.rsh')
.draggable('destroy')
.draggable({ blah blah details });
destroy
อยู่ที่นั่นเพื่อหยุดตัวจัดการแบบลากได้หลายตัวที่สะสมอยู่ในคลาส AJAX กำลังสร้างองค์ประกอบใหม่ และการแนบเริ่มต้นของ draggable
ไปยังคลาสจะไม่แตะองค์ประกอบที่สร้างขึ้นในภายหลัง
อย่างไรก็ตาม เมื่อฉันอัปเดต jQuery UI เป็นเวอร์ชัน 1.9.2 มันเริ่มทำให้ฉันมีข้อผิดพลาดนี้:
ข้อผิดพลาด: ไม่สามารถเรียกวิธีการลากได้ก่อนที่จะเริ่มต้น พยายามเรียกวิธีการ 'ทำลาย'
ฉันก็เลยเอาเส้นทำลายออก และมันก็น่ารักดี ยกเว้น... ฉันสงสัยว่าตอนนี้ฉันอาจจะเพิ่มตัวจัดการในชั้นเรียนมากขึ้นเรื่อยๆ (ซึ่งเป็นเหตุผลว่าทำไม destroy
ถึงอยู่ที่นั่นตั้งแต่แรก)
ฉันลองสิ่งนี้แล้ว แต่ไม่ชอบ:
if ($('.rsh').length) {
$('.rsh').draggable('destroy');
}
คำถามสองข้อ: (1) จะมีตัวจัดการติดอยู่กับคลาสมากขึ้นเรื่อยๆ ทุกครั้งที่ฉันเริ่มบรรทัดการตั้งค่าแบบลากได้หรือไม่ (2) หากเป็นเช่นนั้น มีวิธีแก้ไขอย่างไรในการลบออก