Tôi đang sử dụng chức năng tiện ích con của CKEditor để tạo tiện ích con của riêng mình với thành phần jquery ở đó. Tuy nhiên khi các widget được kéo và thả nó bị phá hủy và tất cả các trạng thái trong thành phần jquery bị mất. Hành vi này có thể tránh được không? Nó có thể cấu hình được không? Tại sao nó được yêu cầu (có thể nhóm CKEditor có thể trả lời câu hỏi này)?CKEditor hủy tiện ích con khi kéo và thả
Trả lời
Đúng là tiện ích bị hủy (và được khởi tạo lại) trong khi kéo và thả, hành vi này không thể tránh được.
Làm cách nào để liên kết thành phần jQuery của bạn với đối tượng widget? Định nghĩa widget của bạn trông như thế nào? (Đó là đối tượng mà bạn vượt qua trong cuộc gọi editor.widgets.add()
). Bạn có sử dụng Widget.setData()
/Làm cách nào để bạn đặt thành phần jQuery này làm dữ liệu widget?
Nếu khó trả lời những câu hỏi này, bạn có thể chỉ cần sao chép dán mã nguồn của phiên bản tiện ích con của bạn (mở công cụ nhà phát triển của trình duyệt và tìm kiếm phần tử có thuộc tính data-cke-widget-id
- không nhầm lẫn với chế độ xem nguồn trong CKEditor). Dán nó với toàn bộ nội dung.
Tiện ích lưu trữ dữ liệu của chúng trong thuộc tính HTML data-cke-widget-data
. Một dự đoán mù sẽ là bạn hoặc không đặt dữ liệu chính xác trên widget hoặc khi nó được xâu chuỗi và sau đó phân tích cú pháp lại, nó không xử lý đối tượng jQuery đúng cách. Có lẽ bạn có thể khởi tạo thành phần jQuery của mình bằng cách sử dụng widget.definition.init
và giữ dữ liệu dưới dạng đối tượng đơn giản (Widget.setData
)?
Bạn cũng có thể muốn xem CKEditor widget documentation để biết thêm thông tin.
- 1. Sự cố khi tạo tiện ích con tổng hợp có thể kéo
- 2. Trên gridster giữ tiện ích con dưới chuột trong khi kéo
- 3. JTable - kéo và thả
- 4. Kéo và thả WinForms để kéo và thả WPF
- 5. Cuộn trong khi kéo và thả (WPF)
- 6. Vẽ lại khi kéo và thả
- 7. Kéo và thả trong GUI
- 8. Cách lấy con trỏ kéo và thả Windows kiểu mới
- 9. Kéo và thả HTML5 (DnD): thay đổi con trỏ
- 10. Xóa tiện ích con Dock trong thiết kế Qt?
- 11. Tiện ích thả xuống ipywidgets: sự kiện onchange là gì?
- 12. kéo và thả ipad
- 13. Kéo và thả trong GWT 2.4
- 14. Toàn bộ trang làm vùng thả để kéo và thả
- 15. Kéo và thả Espresso
- 16. ItemsControl Kéo và Thả
- 17. Sự kiện thả xuống jQuery UI của tiện ích con có thể bị bắn hai lần
- 18. Kéo và thả Javascript: xóa phần tử đã kéo sau khi thả thành công
- 19. Tiện ích con Android sử dụng Cordova
- 20. Kéo và thả WPF, DragOver
- 21. Đặt id của tiện ích con GWT
- 22. API Android 21 - Tiện ích con TimePicker
- 23. GWT có tiện ích con Đoạn không?
- 24. Thay đổi con trỏ chuột cho tệp kéo thả HTML5 (Kéo thả Gmail)
- 25. Di chuyển hình ảnh trong khi kéo và thả
- 26. Kéo và thả hình ảnh trong Thư viện Android
- 27. Cuộn trong khi sử dụng kéo và thả html5
- 28. Tiện ích con Android không cập nhật - có ID tiện ích không chính xác
- 29. Gridster xóa tiện ích bằng cách kéo vào div
- 30. Kéo và thả trong MobileSafari?
Vì vậy, nói chung tôi phải lưu trữ trạng thái hiện tại bằng cách sử dụng setData để tôi có thể khôi phục trạng thái hiện tại sau khi giải trí khi tiện ích được kéo và thả, phải không? –
Có, 'Widget.setData' sẽ lưu mọi thứ bên trong thuộc tính' data-cke-widget-data' của phần tử widget và nó sẽ có sẵn ngay cả sau khi phá hủy widget. – Comandeer
Tôi có thể làm gì nếu tiện ích con phức tạp hơn (tức là cây jquery có các nút có thể được mở rộng bởi người dùng. Trong trường hợp này khi widget là DnD tôi phải tạo lại toàn bộ cây)? –