2012-12-19 31 views
20

chrome throw err: Không thể gọi phương thức 'setData' không xác định, Tôi tìm thấy e không bằng window.event (nó không thích hợp dataTransfer), cả hai đều có rất lớn khác nhaujquery html 5 dragstart .on ('dragstart', function (e) {}) e.dataTransfer.setData() không hoạt động

Tôi thấy cả hai gần như bằng nhau trong sự kiện nhấp chuột.

Tôi đã sử dụng http://code.jquery.com/jquery-latest.js.

Tôi không sử dụng tính năng kéo, tôi chỉ muốn biết lý do. nó là tính năng mới trong html 5, jquery vẫn còn phía sau của nó? hoặc nhóm jquery không muốn hỗ trợ nó ?? hoặc một số lý do khác

+0

Bạn có thể cung cấp ví dụ về mã bạn đang sử dụng không? – PhearOfRayne

Trả lời

50

Trong hàm gọi lại, bạn sẽ nhận được trình bao bọc jQuery trên một sự kiện gốc. Sử dụng thuộc tính originalEvent đối số đã qua:

$('...').on('dragstart', function (event) { 
    event.originalEvent.dataTransfer.setData('...', '...'); 
}); 

P.S. đừng quên đặt thuộc tính draggable="true" cho phần tử được kéo.

+0

cảm ơn bạn rất nhiều. lý do tại sao jQuery không chỉ gọi lại sự kiện gốc – zsytssk

+2

@zsytssk Nó được thực hiện để cung cấp nội dung và hành vi có thể dự đoán được giữa các trình duyệt. Đọc http://api.jquery.com/category/events/event-object/ –

+0

này sẽ 'công việc.dataTransfer.setData()' hoạt động sau đó nếu jQuery không được đưa vào trang – rizwaniqbal

2

jQuery tạo đối tượng sự kiện riêng của nó và chưa có thuộc tính dataTransfer. Điều này cho biết thêm dataTransfer cho đối tượng sự kiện.

$ .event.props.push ('dataTransfer');

Các vấn đề liên quan