2014-07-03 13 views
5

voglio testare un HTML 5 drag and drop quello che però avrebbe funzionato:Come verificare un trascinamento HTML5 e Drop in qunit

Da file di test

var event = new Event('drop',{ 
    'originalEvent':{ 
     'dataTransfer':{ 
      'getData': function(){ 
       return 'tr#0.sprint' 
      } 
     } 
    }, 
    stopPropagation': function() {return;} 
} 
$('tr#0.sprint').trigger(event); 

Ciò in modo che l'evento viene attivato e tutte le funzioni sono impostate per restituire ciò che voglio testato.

attuale script:

quadro Backbone

myView = Backbone.View.extend({ 

    ... 

    drop : function(event) 
    { 
     event.stopPropagation(); 
     var data = event.originalEvent.dataTransfer.getData('element'); 

     // some code 

    }, 

    ... 

}; 

Purtroppo di questo errore per Illigal function call

Se rimuovo l'oggetto dataTransfer e cerco di impostare io stesso ho un errore non definito

risposta

2

Se lo imposta un po 'diverso, fa un mondo di differenza:

var event = new Event('drop',{ 
    stopPropagation: function() {return;} 
}); 
event['originalEvent'] ={ 
    'dataTransfer':{ 
     'getData': function(){ 
      return 'tr#0.sprint' 
     } 
    } 
}; 
$('tr#0.sprint').trigger(event); 

Questo è un modo più "manuale" per impostare gli attributi di un oggetto javascript. Gli argomenti aggiunti al costruttore dell'evento sono controllati dal costrutto dell'oggetto evento.

Problemi correlati