6
votes

Nouvelle fenêtre avec contenu de contenu modal sur la page ouvre

Je pense que je ne vais pas à ce sujet tout à fait juste, étant très nouveau à JQuery. J'ai une page avec 3 recettes sur elle cachées. Lorsqu'un lien vers la recette A est cliqué dessus s'ouvre dans un mode modal. Je veux pouvoir imprimer juste le contenu de la recette. Donc, j'ouvre une nouvelle fenêtre (non-Modale) et essaye d'écrire la recette (selon laquelle la recette est choisie)

Ceci est le code que j'utilise xxx

Mais cela renvoie une erreur. Je pense que c'est proche mais pas tout à fait raison. L'erreur est: manquant ; avant la déclaration [Casser sur cette erreur] var html = "Imprimer ... =" MyprinTrecpe ">"; \ n


0 commentaires

3 Réponses :


0
votes

Le problème est dans votre chaîne. Changez-le à ceci:

$('a.new-window').click(function(){

    var recipe =  window.open('','RecipeWindow','width=600,height=600');
     $('#recipe1').clone().appendTo('#myprintrecipe');
    var html = "<html><head><title>Print Your Recipe</title></head><body><div id=\"myprintrecipe\"></div></body></html>";
recipe.document.open();
recipe.document.write(html);
recipe.document.close();

      return false;

     });


0 commentaires

0
votes

Modification: xxx

à: xxx

et prenez des notes sur les guillemets doubles (")


0 commentaires

23
votes

Je pense que ce que vous recherchez est ce qui suit:

jQuery(function($) {
    $('a.new-window').click(function(){

    var recipe =  window.open('','RecipeWindow','width=600,height=600');
    var html = '<html><head><title>Print Your Recipe</title></head><body><div id="myprintrecipe">' + $('<div />').append($('#recipe1').clone()).html() + '</div></body></html>';
    recipe.document.open();
    recipe.document.write(html);
    recipe.document.close();

    return false;

    });
});


3 commentaires

Merci Tres! C'était là, la truc de cordes - une erreur de recrue, je ne peux pas croire que j'ai raté cela. Le deuxième problème était ce que je ne pouvais pas comprendre, quand faire l'annexe ... merci !!!


D'accord, je regarde cela plus attentivement et ne le comprend pas vraiment. (Bien que reconnaissant cela fonctionne) ... est-il possible d'expliquer cette partie: $ ('<

'). Ajoutez ($ (# recette1 '). Clone ()). HTML () Je ne comprends pas pourquoi / Comment le
est un sélecteur dans ce cas ...


La DIV n'est pas un sélecteur, c'est HTML étant transmis à JQuery. Lorsque cela se produit, JQuery crée un objet sur lequel vous pouvez utiliser dans votre chaînage. Ce que j'ai fait avec ce morceau de code est saisir le HTML "extérieur" de l'objet de recette, car si vous venez de devenir $ ('# recette1'). HTML (), vous auriez tout à l'intérieur de '# recette1', mais pas '# recette1' elle-même, y compris son HTML. Si vous n'avez pas besoin d'inclure «# recette1» dans la fenêtre, mais seulement son HTML, puis simplement aller $ ('# recette1 »). HTML (). Les docs JQuery expliquent des arguments valides ici: docs.jquery.com/core . Voir: "$ (...) la fonction jQuery:".