Buwanang Archive: Mayo 2011

Pa Higit pang jQuery–Baguhin ang laki ng isang Halimbawa ng Imahe

Ako minana isang web bahagi mula sa lumang vendor isang kliyente at ito ay may isang imahe problema laki.  Ang mga imahe ay dapat na 60×50 ngunit para sa ilang mga gansal dahilan, ang orihinal na vendor pinilit ang mga ito sa 42×42, kaya tumingin sila lapirat:

 

Magandang Imahe

Masamang Imahe

Narito ang markup (medyo pinagaan):

<talahanayan class = 'extended-kuro'>
  <thead>
    <tr>
      <ika  width = '100′>3 Martes</ika>
    </tr>
  </thead>

  <tbody>
    <tr class = 'forecast'>
      <td width = '100′>
        <st>
          <li class = 'mataas'>Mataas: 72&mo;F</li>
          <li class = 'mababa'>Mababa: 44&mo;F</li>
          <li class = 'kondisyon'>Maaraw
            <img SRC =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/en/trans/cond007.png’ width = '42’ taas = '42’ alt =” />
          </li>
        </st>
      </td>
    </tr>

  </tbody>

</talahanayan>

Makikita mo tandaan na kahit na ang path sa mismong imahe Ipinapakita ang tamang sukat (60×50) ang orihinal na vendor sapilitang ito sa 42×42.  Bakit?  Basag ang pula.

Gayon pa man, Nais kong isang mabilis at madaling solusyon sa isyung ito at ako ay sumangguni sa jQuery.  Bilis ng kamay ay upang mahanap ang lahat ng mga naaangkop na <img> mga tag.  Hindi ko nais upang putik tungkol sa anumang iba pang img tag (kung saan mayroong maraming).  Ito bit ng jQuery ginawa ang bilis ng kamay:

<script type="text/javascript" SRC ="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>

<script type="text/javascript">
     $(dokumento).nakahanda(tungkulin () {

         $(‘li.condition > img ').bawat(tungkulin (talatuntunan, bagay)
           
{
             $(bagay).css("width", "60"); 
             $(bagay).css("height", "50");
            });
     }); // sa dokumento ng pag-load
</script>

Iyon bit ng code na nakakahanap ng mga koleksyon <li> mga tag na ang klase ay "kalagayan" at <img> mga bata.  Ito pagkatapos iterates sa pamamagitan ng lahat ng iyon.  Nagtrabaho tulad ng isang kagandahan.

Kaya kong marahil streamline ito, ngunit ako ay hindi kailanman ay isang uri ng Unix tao na malutas sa π upang 18 digit katumpakan gamit SED at awk at ako ay hindi na uri kung jQuery tao alinman sa ngiti.

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

Pag-parse ng XML sa LINQ

Narito ang isang mabilis na halimbawa ng paggamit LINQ i-parse ang ilang mga  XML at makakuha sa matamis, matamis na mga katangian sa ganyang bagay.

Narito ang XML na gusto kong i-parse:

<?xml version="1.0" encoding="utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout name="xyzzy">
      <Mga Tab>
        <Tab TabOrder="1" TabLabel="x" SharePointContentType="a" AdditionalConstraints="ac1"/>
        <Tab TabOrder="2" TabLabel="y" SharePointContentType="b" AdditionalConstraints="ac2"/>
      </Mga Tab>
    </PageLayout>

    <PageLayout name="xyzzy2">
      <Mga Tab>
        <Tab TabOrder="100" TabLabel="x" SharePointContentType="a" AdditionalConstraints="ac1"/>
        <Tab TabOrder="101" TabLabel="y" SharePointContentType="b" AdditionalConstraints="ac2"/>
        <Tab TabOrder="103" TabLabel="z" SharePointContentType="c" AdditionalConstraints="ac3"/>
      </Mga Tab>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Gusto kong bumuo ng ilang mga tab sa runtime sa pamamagitan ng pag-parse ng sa itaas.  Aking mga tab ay depende sa oras ng layout ng pahina.  Kung ang pangalan ng aking pahina layout ay "xyzzy2" pagkatapos Gusto kong makakuha ng mga tab 100, 101 at 103 (ang mga tab sa <PageLayout name = "xyzzy2">).

Narito ang LINQ na ginagawa nito:

ay allTabs =
              mula sa p
                  XElement.Parse(theXmlToParse).
                 
Mga Sangkap("PageLayouts").
                  Mga Sangkap("PageLayout")
              saan (p.Attribute("name").Value.Equals("xyzzy2"))
              m mula sa p.Elements("Tabs").Mga Sangkap("Tab")
              piliin m;

          Results.Text = string.Empty;

          foreach (ay ATAB sa allTabs)
          {
              Results.Text =
                  "Tab Order: " + aTab.Attribute("TabOrder").Halaga + " |" +
                  "Tab Label: " + aTab.Attribute("TabLabel").Halaga + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Halaga + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Halaga + "\r";
          }

Sa itaas, ang variable na "theXmlToParse" ay isang string variable, ngunit maaari mong gamitin ang pag-load() pamamaraan sa isang stream kung gusto mo.

"Mga Resulta" ay isang label sa isang web form at kapag ang code na ito executes, ito ganito ang hitsura:

SNAGHTML11cd2e7c

Hindi ko pa nagtrabaho out kung paano i-uri-uriin ang mga resulta pa, kaya makikita ko bang iwan na para sa isang hinaharap na post sa blog.

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin