jQueryUI déplaçable + sortable bug (Impossible de lire la propriété 'options' undefined)
Ma question semble ressembler à cette question:
glisser à partir d'une liste triable à un glisser-déposer du plugin
Mais depuis il n'y a pas de réponse donnée à celui-là que je me demandais si quelqu'un pourrait /serait en mesure de le comprendre avec moi. La question que je vais avoir, c'est que je créer un déplaçable div et ajouter ce dans une div qui est fait sortable. Quand je spécifier des arguments de la sorte:
$(el).sortable({ ... arguments ... });
Il provoque une erreur lors de l'élément est supprimé, voir ci-dessous, lorsqu'il est laissé vide, il étrangement fonctionne très bien et n'a pas de problèmes. L'erreur empêche également toute les fonctions pour être déclenché par l'élément déplaçable.
Uncaught TypeError: Cannot read property 'options' of undefined
jquery-ui-1.10.3.custom.js:2204
$.ui.plugin.add.stop jquery-ui-1.10.3.custom.js:2204
$.extend.plugin.call jquery-ui-1.10.3.custom.js:284
$.widget._trigger jquery-ui-1.10.3.custom.js:2017
(anonymous function) jquery-ui-1.10.3.custom.js:401
$.widget._mouseStop jquery-ui-1.10.3.custom.js:1702
(anonymous function) jquery-ui-1.10.3.custom.js:401
$.widget._mouseUp jquery-ui-1.10.3.custom.js:957
(anonymous function) jquery-ui-1.10.3.custom.js:401
$.widget._mouseUp jquery-ui-1.10.3.custom.js:1721
(anonymous function) jquery-ui-1.10.3.custom.js:401
$.widget._mouseDown._mouseUpDelegate jquery-ui-1.10.3.custom.js:913
jQuery.event.dispatch jquery-1.10.2.js:5095
jQuery.event.add.elemData.handle jquery-1.10.2.js:4766
Et c'est le code où ça se passe mal:
$.ui.plugin.add("draggable", "cursor", {
start: function() {
var t = $("body"), o = $(this).data("ui-draggable").options;
if (t.css("cursor")) {
o._cursor = t.css("cursor");
}
t.css("cursor", o.cursor);
},
stop: function() {
var o = $(this).data("ui-draggable").options;
if (o._cursor) {
$("body").css("cursor", o._cursor);
}
}
});
var o = $(this).data("ui-draggable").options;
Le $(this).data()
ne contient que: Object {id: "c17"}
Exemple de code:
$('.draggable').draggable({
connectToSortable: '.sortable',
drop: function(){
console.log('Element dropped');
}
});
$('.sortable').sortable({
update: function(){
console.log('sortable updated');
}
});
JSBin exemple: http://jsbin.com/eHUKuCoL/9/edit?html,js,sortie
Espérons que quelqu'un est capable de me dire ce qu'est la question, et ce que le correctif pour le problème est.
OriginalL'auteur N.Schipper | 2013-12-05
Vous devez vous connecter pour publier un commentaire.
Selon la documentation, Jquery UI Déplaçable Documentation, vous devez définir à l'aide du paramètre de "clone", pour la connectWithSortable fonctionnalité fonctionne parfaitement.
Une fois que je l'ai fait, il a cessé de jeter de l'erreur.
Mise À Jour JSBin
Aussi une note, déplaçable n'a pas un "drop" de la méthode dans sa documentation, de sorte que vous aurez probablement à inclure la droppable plugin si c'est ce que vous allez pour.
Enfin, si vous devez utiliser clone comme la méthode d'assistance, vous aurez probablement besoin d'ajouter un peu de css pour le faire fonctionner plus lisse.
Acclamations.
OriginalL'auteur Rooster
J'ai aussi rencontré ce problème lors de la construction d'une très dynamique de l'app à l'aide de Meteor. Il s'avère que si vous supprimez l'original en faisant glisser l'élément (ou n'avez pas le clone), vous obtiendrez cette erreur. Cette récidivé à plusieurs reprises dans les différentes versions de jQuery, mais il est maintenant enfin corrigé dans la v1.11.0:
OriginalL'auteur Andrew Mao