jQuery UI: Καλύτερος τρόπος για να φορτώσει σήμανση HTML;

ψήφοι
2

Ποιος είναι ο καλύτερος τρόπος για να φορτώσει σήμανση HTML για μια προσαρμοσμένη jQuery UI widget;

Μέχρι στιγμής, έχω δει στοιχεία που δημιουργήθηκαν χρησιμοποιώντας απλά χορδές (δηλαδή $(...).wrap('<div></div>')) το οποίο είναι καλό για κάτι απλό. Ωστόσο, αυτό το καθιστά εξαιρετικά δύσκολο να τροποποιήσετε αργότερα για πιο πολύπλοκα στοιχεία.

Αυτό φαίνεται σαν ένα αρκετά κοινό πρόβλημα, αλλά ξέρω επίσης ότι η βιβλιοθήκη jQuery UI είναι αρκετά νέα ότι δεν μπορεί να υπάρχει μια ευρέως αποδεκτή λύση για αυτό. Καμιά ιδέα?

Δημοσιεύθηκε 09/12/2008 στις 23:25
πηγή χρήστη
Σε άλλες γλώσσες...                            


4 απαντήσεις

ψήφοι
6

Κάτι το οποίο είναι αρκετά τακτοποιημένη να κάνετε είναι το εξής:

var newDiv = $("<div></div>"); //Create a new element and save a reference
newDiv.attr("id","someid").appendTo("body");

Με αυτόν τον τρόπο, δημιουργείτε ένα στοιχείο, και την αποθήκευση αναφορά του σε μια μεταβλητή, για μελλοντική χρήση.

Απαντήθηκε 09/12/2008 στις 23:49
πηγή χρήστη

ψήφοι
2

Αν έχετε ένα μεγάλο ποσό των πολύπλοκων HTML, και δεν θέλουν να ασχοληθεί με μια μόνιμη χορδές σε κώδικα JavaScript, μπορείτε να το βάλετε σε ένα ξεχωριστό αρχείο HTML και να χρησιμοποιήσετε τη λειτουργία φορτίο Ajax .

Είναι chainable, ώστε να μπορείτε να φορτώσετε το αρχείο HTML (το όλο θέμα, ή ένα επιλεγμένο κομμάτι), την ένεση στην τρέχουσα DOM σας, και να διατηρήσουν το δικαίωμα σε εξέλιξη.

Απαντήθηκε 21/09/2009 στις 23:45
πηγή χρήστη

ψήφοι
1

Πολλές φορές για πολύ σύνθετο πρότυπα εγώ θα αποθηκεύει μόνο τα μπλοκ html όπως και με αντικείμενα JSON για αργότερα την πρόσβαση ... π.χ:

var temp = {
  header : "<div class='foo'><h3>{HEADER}</h3></div>",
  content : "<div class='bar'><p>{COPY}</p></div>"
}

Και στη συνέχεια, μόλις εκτελέσετε κάποια αντικατάσταση για εκείνους που όταν τα πράγματα έρχονται πίσω. Με αυτόν τον τρόπο η σήμανση χωρίζεται κάπως από τη λογική για να φορτώσει τα δεδομένα, έτσι την εναλλαγή πρότυπα κλπ μπορεί να είναι λίγο πιο γρήγορα.

var text = "I am the header text";
var head = new String(temp.header);
$(target).append(head.replace("{HEADER}",text));

Τέλος πάντων, αυτή η προσέγγιση λειτούργησε καλά για μένα με AJAX widgets και αυτό το είδος του πράγματος, όπου υπάρχει μια πιθανότητα ότι το σχέδιο μπορεί να αλλάξει ριζικά γύρω.

Απαντήθηκε 21/09/2009 στις 23:19
πηγή χρήστη

ψήφοι
0

Μια δημοφιλής, αποτελεσματική μέθοδος είναι η έξοδος όλων των πρόσθετων σήμανσης σας (ό, τι μπορεί να χρειαστείτε αργότερα) στο κάτω μέρος της σελίδας σας σε ετικέτες σενάριο, έτσι ώστε η σήμανση δεν παρέχονται από το πρόγραμμα περιήγησης.

<script type="text/template" id="template-example">
    <!-- All of your markup here -->
    <% // do some JavaScript in here... %>
    <%= echo_this_variable %>
</script>

Στη συνέχεια μπορείτε να πάρετε σήμανσης χρησιμοποιώντας jQuery ...

var markup = $('#template-example').html();

Και αναλύσει εκείνους JS παραδείγματα έριξα εκεί χρησιμοποιώντας μια μηχανή προτύπων, όπως αυτή στην Underscore.js (που συστήνω), ή ένα από αυτά jQuery σε αυτή την απάντηση: jQuery μηχανές υφής

Καλα να περνατε!

Απαντήθηκε 27/01/2013 στις 23:46
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more