Μηνιαία Αρχεία: Μπορεί να 2011

Ακόμη πιο jQuery–Να αλλάξετε το μέγεθος ένα παράδειγμα εικόνας

Έχω κληρονομήσει ένα τμήμα web από παλιά προμηθευτή του πελάτη και να έχει ένα πρόβλημα μέγεθος εικόνας.  Οι εικόνες πρέπει να είναι 60×50 αλλά για κάποιο περίεργο λόγο, τον αρχικό προμηθευτή τους εξανάγκασε σε 42×42, έτσι φαίνονται στριμωγμένος:

 

Καλή εικόνα

Κακή εικόνα

Εδώ είναι το περιθώριο κέρδους (κάπως απλουστευμένη):

<Πίνακας τάξη = 'επεκταθεί-outlook'>
  <thead>
    <TR>
      <ου  πλάτος = 100′>3 Τρίτη</ου>
    </TR>
  </thead>

  <TBODY>
    <Κλάση TR = «πρόβλεψη»>
      <πλάτος TD = 100′>
        <UL>
          <Li τάξη = «υψηλή»>Υψηλή: 72&DEG;F</Li>
          <Li τάξη = «χαμηλής»>Χαμηλή: 44&DEG;F</Li>
          <Li τάξη = «κατάσταση»>Ηλιόλουστη
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/EN/trans/cond007.png’ πλάτος ='42’ ύψος ='42’ ALT =” />
          </Li>
        </UL>
      </TD>
    </TR>

  </TBODY>

</Πίνακας>

Θα σημειωθεί ότι ακόμα κι αν το διαδρομή για την ίδια την εικόνα δείχνει την σωστή διάσταση (60×50) ανάγκασε τον αρχικό προμηθευτή σε 42×42.  Γιατί?  Τρελό,.

Ούτως ή άλλως, Θα ήθελα μια γρήγορη και εύκολη λύση σε αυτό το θέμα και γύρισα να jQuery.  Το κόλπο ήταν να εντοπίσει όλα τα κατάλληλα <img> Ετικέτες.  Δεν ήθελα να βόρβορος σχετικά με οποιεσδήποτε άλλες ετικέττες img (των οποίων υπάρχουν πολλές).  Αυτό το κομμάτι της jQuery έκανε το κόλπο:

<σενάριο τύπο = text/javascript"" src ="http://Ajax.googleapis.com/Ajax/libs/jQuery/1.5/jQuery.min.js"></σενάριο>

<σενάριο τύπο = "text/javascript">
     $(έγγραφο).έτοιμο(συνάρτηση () {

         $(«li.condition > img»).κάθε(συνάρτηση (Δείκτης, στοιχείο)
           
{
             $(στοιχείο).CSS("Πλάτος", "60"); 
             $(στοιχείο).CSS("ύψος", "50");
            });
     }); // έγγραφο φορτίο
</σενάριο>

Εκείνο το κομμάτι του κώδικα που βρίσκει τη συλλογή <Li> Ετικέτες κατηγορίας του οποίου είναι "κατάσταση" και <img> τα παιδιά.  Στη συνέχεια εκτελεί επαναλήψεις μέσα από όλα αυτά.  Έλυσα αρέσω έναs γοητεία.

Εγώ κατά πάσα πιθανότητα θα μπορούσε να βελτιώσει αυτό, αλλά ποτέ δεν ήμουν ένα το είδος τύπου unix που έλυσε π να 18 ψηφία ακρίβεια χρησιμοποιώντας sed και awk και δεν είμαι αυτού του είδους, αν jQuery τύπος είτε Χαμόγελο.

</Τέλος>

Εγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

Κατά την ανάλυση XML με LINQ

Εδώ είναι ένα γρήγορο παράδειγμα χρησιμοποιώντας το LINQ να αναλύσει μερικές  XML και να πάρετε στο γλυκό, γλυκό αποδίδει σ ' αυτό.

Εδώ είναι το XML που θέλω να αναλύσει:

<?XML έκδοση = 1.0»" κωδικοποίηση = "utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout όνομα = "xyzzy">
      <Καρτέλες>
        <Στην καρτέλα TabOrder = "1" TabLabel = "x" SharePointContentType = "ένα" AdditionalConstraints = "ac1" />
        <Στην καρτέλα TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
      </Καρτέλες>
    </PageLayout>

    <PageLayout όνομα = "xyzzy2">
      <Καρτέλες>
        <Στην καρτέλα TabOrder = "100" TabLabel = "x" SharePointContentType = "ένα" AdditionalConstraints = "ac1" />
        <Στην καρτέλα TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
        <Στην καρτέλα TabOrder = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
      </Καρτέλες>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Θέλω να δημιουργήσει κάποιες καρτέλες κατά το χρόνο εκτέλεσης με την ανάλυση των ανωτέρω.  Καρτέλες μου εξαρτάται από μια διάταξη σελίδας.  Εάν το όνομα της διάταξης σελίδας μου είναι "xyzzy2", τότε θέλω να πάρω καρτέλες 100, 101 και 103 (Οι καρτέλες στο <PageLayout όνομα = "xyzzy2">).

Εδώ είναι το LINQ που κάνει:

var allTabs =
              από p στο
                  XElement.Parse(theXmlToParse).
                 
Στοιχεία("PageLayouts").
                  Στοιχεία("PageLayout")
              όπου (p.Attribute("όνομα").Value.Equals("xyzzy2"))
              από m σε p.Elements("Καρτέλες").Στοιχεία(«Καρτέλα»)
              Επιλέξτε m;

          Results.Text = συμβολοσειρά.Άδειο;

          foreach (var aTab σε allTabs)
          {
              Results.Text =
                  "Σειρά tab: " + aTab.Attribute("TabOrder").Αξία + " |" +
                  "Καρτέλα ετικέτα: " + aTab.Attribute("TabLabel").Αξία + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Αξία + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Αξία + "r";
          }

Στο παραπάνω, η μεταβλητή "theXmlToParse" είναι μια μεταβλητή συμβολοσειράς, αλλά μπορείτε να χρησιμοποιήσετε το φορτίο() μέθοδος σε ένα ρεύμα, αν σας αρέσει.

«Αποτελέσματα» είναι μια ετικέτα μιας φόρμας web και όταν αυτός ο κώδικας εκτελεί, μοιάζει με αυτό:

SNAGHTML11cd2e7c

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

</Τέλος>

Εγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin