2013-02-09 16 views
8

Uncaught TypeError की 'dropEffect': सेट नहीं कर सकता गुण अपरिभाषित main.js की 'dropEffect'
Uncaught TypeError: गुण अपरिभाषित
खींचें और छोड़ें काम doenst नहीं: अपरिभाषित

की 'फ़ाइलों' पढ़ा नहीं जा सकता क्या गलत है यहाँ

.coffee

$ -> 
    app = new Viewr 

class Viewr 

    constructor:() -> 
    $('#drop_zone') 
    .bind('dragover', @handleDragOver) 
    .bind('drop', @handleDrop) 

    handleDrop: (evt) -> 
    evt.stopPropagation() 
    evt.preventDefault() 
    files = evt.dataTransfer.files 

    @setActiveImage files[0] 

    handleDragOver: (evt) -> 
    evt.stopPropagation() 
    evt.preventDefault() 
    evt.dataTransfer.dropEffect = "copy" 

    setActiveImage: (image)-> 
    $("img").attr "src", src 

.html

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <link rel="stylesheet" type="text/css" href="css/main.css"> 
</head> 
<body> 
    <div id="drop_zone" style="width: 100px; height: 100px; border: 2px dashed #bbb; 
           -moz-border-radius: 5px; 
           -webkit-border-radius: 5px; 
           border-radius: 5px; 
           padding: 25px; 
           text-align: center; 
           color: #bbb;">Drop files here</div> 
</body> 
<script type="text/javascript" src="js/lib/jquery-1.9.1.min.js"></script> 
<script type="text/javascript" src="js/main.js"></script> 
</html> 

उत्तर

28

मुझे लगता है कि समस्या यह हो सकती है कि आप देशी ड्रॉप इवेंट की बजाय jQuery 'dragover' और 'drop' ईवेंट का उपयोग कर रहे हैं। अगर यह काम करता है

OtherProperties

Certain events may have properties specific to them. Those can be accessed as properties of the event.originalEvent object. To make special properties available in all event objects, they can be added to the jQuery.event.props array. This is not recommended, since it adds overhead to every event delivered by jQuery.

Example:

// add the dataTransfer property for use with the native `drop` event 
// to capture information about files dropped into the browser window 
jQuery.event.props.push("dataTransfer"); 

आपका सबसे अच्छा शर्त शायद originalEvent वस्तु का उपयोग करने की है, तो देखें:: आप here देख सकते हैं, यह jQuery घटना वस्तु को DataTransfer वस्तु को जोड़ने के लिए होने का उल्लेख

handleDrop: (evt) -> 
    evt.stopPropagation() 
    evt.preventDefault() 
    files = evt.originalEvent.dataTransfer.files 

handleDragOver: (evt) -> 
    evt.stopPropagation() 
    evt.preventDefault() 
    evt.originalEvent.dataTransfer.dropEffect = "copy" 
संबंधित मुद्दे