jquery 2.0 jquery ui datepicker bug - Uncaught TypeError: Cannot read property 'append' undefined
Depuis que je suis passé à JQuery 2.0 a un bug avec la destruction de jQuery UI (1.10.2) Datepickers.
Me semble que le problème de la modification de jquery.chaque fonction ().
Je ne suivant
$(this.el_picker).datepicker('destroy');
il appelle JQuery UI ligne 9605
return this.each(function() {
typeof options === "string" ?
$.datepicker["_" + options + "Datepicker"].
apply($.datepicker, [this].concat(otherArgs)) :
$.datepicker._attachDatepicker(this, options);
});
Ensuite, il appelle la suite dans Jquery.chacun() fonction:
if ( isArray ) {
for ( ; i < length; i++ ) {
value = callback.call( obj[ i ], i, obj[ i ] );
if ( value === false ) {
break;
}
}
} else {
for ( i in obj ) {
value = callback.call( obj[ i ], i, obj[ i ] );
if ( value === false ) {
break;
}
}
}
Et là est la différence avec l'ancienne version de JQuery
if ( isObj ) {
for ( name in object ) {
if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
break;
}
}
} else {
for ( ; i < length; ) {
if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {
break;
}
}
}
}
Puis il va à JQuery UI ligne 7922
_destroyDatepicker: function(target) {
var nodeName,
$target = $(target),
inst = $.data(target, PROP_NAME);
if (!$target.hasClass(this.markerClassName)) {
return;
}
nodeName = target.nodeName.toLowerCase();
$.removeData(target, PROP_NAME);
if (nodeName === "input") {
inst.append.remove();
Et déclenche une erreur:
Uncaught TypeError: Cannot read property 'append' undefined
Des idées? Est-il de la compatibilité de bug? Comment résoudre ce problème? Ou je fais quelque chose de mal.
Vous devez vous connecter pour publier un commentaire.
Une façon que j'ai trouvé pour résoudre ce problème, en supposant que vous souhaitez réinitialiser le datepicker est:
Cela se produit généralement lorsque vous appelez détruire sur une entrée qui a la classe, mais ne dispose pas d'un datepicker() appelée sur elle encore. Par exemple:
Si vous n'avez pas encore appelé
$(".dp").datepicker()
et essayez d'appeler$(".dp").datepicker("destroy")
, vous obtiendrez cette erreur. Cela se produit également lorsque vous êtes à l'ajout dynamique de lignes où l'un des champs de ligne est un datepicker d'entrée. Dans ce cas, la séquence de code devrait être:Peu en retard, mais j'ai enlevé le détruire fonction et ai eu de travail. Pas exactement comme votre exemple, mais cela a été flashé à partir de: JSFiddle
et enlevé le knoukout de nettoyage pour obtenir cette solution:
Je pense que le problème est que jquery ne devraient pas être forcés de détruire le datepicker, quand je l'ai enlevé, je peux actualiser la page sans la
erreur
J'ai eu le même problème et j'ai trouvé une autre solution que mentionné ajouter le script suivant de référence juste en dessous de jquery et jqueryui références:
Cela a fonctionné pour mon problème avec datepicker.