datepicker de jQuery ne fonctionne qu'une fois et n'est pas affiché la deuxième fois

ASP.NET MVC3 /jQuery 1.9.1 /l'INTERFACE utilisateur de jQuery 1.10.2

J'ai une page sur laquelle j'ai ouvert une boîte de dialogue modale après avoir cliqué sur un Ajax.ActionLink. À l'intérieur de cette boîte de dialogue, j'ai un champ de saisie et un datepicker associés. Quand j'ouvre la boîte de dialogue pour la première fois, je peux cliquer sur le datepicker bouton (ou à l'intérieur du champ associé, de sorte qu'il reçoit le focus, showOn est fixé à both), et le datepicker montre comme prévu. Je peux, alors que la boîte de dialogue modale est ouvert, faites-le aussi souvent que je veux, le datepicker montre à chaque fois. Quand je ferme la boîte de dialogue modale (par l'intermédiaire d'un joint $("ui-widget-overlay").click(function(){...}); puis l'ouvrir à nouveau, le datepicker ne fonctionne plus, pas de problème j'ai essayer de cliquer sur le bouton ou dans le champ associé.

J'ai essayé de déboguer le code jQuery, et les deux fois les lignes de code en cours d'exécution sont les mêmes (et même si le datepicker n'est pas la deuxième fois, le dialogue est ouvert, les méthodes jQuery sont déclenchés) de ce que je peux voir dans le débogueur. Je suis complètement déconcerté, et les méthodes décrites dans ce post seulement aidé en termes de pour montrer le datepicker la première fois, la boîte de dialogue s'ouvre. Un autre post ne semble être liée à un malentendu comment le showOn paramètre fonctionne.

J'ai aussi essayé de détruire le datepicker via $("#datepicker").datepicker("destroy"); lors de la fermeture de la boîte de dialogue en vain. Des idées?

Mise à jour

Sur "l'appel de la page":

$(document).ready(function () {
    $("#popupDialog").dialog(
    {
        autoOpen: false,
        modal: true,
        open: function()
        {
            $("ui-widget-overlay").click(function()
            {
                $("#popupDialog").dialog("close");
            }
        }
    });
});
[...]
@Ajax.ActionLink( "Some text", "Action", "Controller", new AjaxOptions {
    HttpMethod = "GET",
    UpdateTargetId = "popupDialog",
    InsertionMode = InsertionMode.Replace,
    OnSuccess = "openPopup()"
})
[...]
function openPopup()
{
    $("popupDialog").dialog("open");
}
[...]
<div id="popupDialog" style="display: none;"></div>

Le contrôleur d'action est très simple et comme suit:

public ActionResult Action()
{
    MyActionModel myActionModel = new MyActionModel();
    return PartialView( myActionModel );
}
le contenu est-il à l'intérieur du modèle est ajouté dynamiquement ??
Entendez-vous le contenu de la boîte de dialogue modale? Il est ouvert via un Ajax.ActionLink qui met à jour un id de la cible (div) via le UpdateTargetId de la propriété. Le contrôleur de l'action de retourner le contenu de la boîte de dialogue modale des requêtes à un service web, puis renvoie une vue partielle avec un peuplé de modèle.
Pouvez-vous montrer le code html+js code ?
oui... j'ai mis à jour ma réponse.. check it out

OriginalL'auteur Gorgsenegger | 2013-04-18