2010-03-09 14 views
2

Je suis nouveau à jQuery et je voudrais savoir s'il est possible de créer et éditer sur div sur lequel je peux cliquer , tapez un peu de texte, faites-le sauvegarder et ayez immédiatement une autre div dynamiquement en dessous qui permettra la même capacité à taper et à enregistrer, et ainsi de suite. Si quelqu'un a des idées, ce serait grandement apprécié.Utilisez jQuery pour créer edit dans place div et avoir une nouvelle div disponible pour éditer juste en dessous

$(document).ready(function() { 
     $('.edit_area').editable(function(value, settings) { 
      return (value); 
     }, { 
      type: 'textarea', 
      onblur: 'submit', 
      indicator: 'Saving...', 
      callback: function(value, settings) { 
       var thisData = $(value); 

       $.post('<%=Url.Action("SetPostieNotes", "Posties") %>', 
       'postieNotes=' + escape(thisData) 
       ); 
       var divTag = document.createElement("div"); 
       divTag.id = "div"; 
       divTag.setAttribute("align", "center"); 
       divTag.className = "edit_area"; 
       divTag.innerHTML = "Test Dynamic Div."; 
       document.body.appendChild(divTag); 
      } 
     }); 
    }); 

Répondre

5

Utilisez jEditable pour la fonctionnalité modifier en place, et l'utiliser est des fonctions de rappel pour frayer la nouvelle div ci-dessous l'existant.


Vous n'êtes pas vraiment en utilisant tout ce que jEditable a à offrir, essayer quelque chose comme ça (je ne peux pas tester ce moment, mais il devrait vous donner quelques idées):

$(function() { 
    $('.edit_area').editable('<%=Url.Action("SetPostieNotes", "Posties") %>', { 
     callback: function(v, settings) { 
      var new_div = $('<div />') 
          .addClass('edit_area') 
          .editable('<%=Url.Action("SetPostieNotes", "Posties") %>', settings); 

      $(this).after(new_div); 
     } 
    }); 
}); 

Ce devrait être tout ce qu'il y a à faire. Vous n'avez pas besoin de faire la soumission vous-même, c'est ce que jEditable est pour. Fournissez simplement l'URL que vous souhaitez enregistrer comme premier paramètre et les paramètres comme seconde.

+0

-vous arrive d'avoir un exemple de code? S'il vous plaît voir ce que j'ai ci-dessus. –