Обновление DIV с содержанием XML на парении

Понятие того, что я пытаюсь сделать, довольно просто. У меня есть сетка логотипов компании, загруженных через XSLT из XML-документа, каждого с их собственными уникальными ссылками на профили деятельности компании.

У меня есть отдельное отделение на странице, по существу поле "предварительного просмотра". То, что я хочу сделать, является этим:

Я переворачиваю логотип, и он загружает название компании и краткого описания в отделение предварительного просмотра. Это содержание загружается через XML.

Я бездельничал с загрузкой JQuery () функции, изменяя целевой документ для загрузки на Парении — и это почти получает то, что я хочу, но это загружает целый целевой XML-документ в отделение.

Как я могу распасться этот целевые данные XML на отдельные отделения? (который я разработал по-другому), я предположил бы, что использую Ajax в некотором роде. Я хочу загрузиться <name> узел в name_div, и <desc> узел в description_div, и сделал, чтобы они обновили на парении. Заранее спасибо за справку!

Вот некоторые примеры кода, с которым я работаю:

Файл portfolio.xml (этот файл является моей основной страницей, отображая сетку и отделение предварительного просмотра, пример, использует 3 компании):

<portfolio>
    <company>
        <name>ABC Company</name>
        <sdesc>Consumer products</sdesc>
        <logo-thumb>abcco.jpg</logo-thumb>
        <link>abcco.xml</link>
    </company>

    <company>
        <name>DEF Company</name>
        <sdesc>Communications firm</sdesc>
        <logo-thumb>defco.jpg</logo-thumb>
        <link>defco.xml</link>
    </company>
    <company>
        <name>GHI Corporation</name>
        <sdesc>Electronic products</sdesc>
        <logo-thumb>ghico.jpg</logo-thumb>
        <link>ghico.xml</link>
    </company>
</portfolio>

Следующие дисплеи XSLT, которые кодируют на странице:

<xsl:for-each select="portfolio/company">
     <xsl:sort select="name" />

       <div class="invest-port-thumb">
         <a>
         <xsl:attribute name="href">
              <xsl:value-of select="link" />
         </xsl:attribute>

         <img>
         <xsl:attribute name="src">
              <xsl:value-of select="logo-thumb" />
         </xsl:attribute>
         </img>
         </a>
       </div>

</xsl:for-each>

Это - структура HTML "отделения предварительного просмотра":

<div id="preview">

<div id="preview-name"> [Name to display here] </div>
<div id="preview-desc"> [Description to display here] </div>

</div>

Все 3 логотипа компании загружаются в страницу, каждый отображающий связанное изображение, загруженное из. Желаемый эффект к на парении, отобразите содержание в отделении "имени предварительного просмотра" и содержании в отделении "предварительного-просмотра-desc".


Позвольте мне попытаться быть немного более конкретными. Вот некоторые примеры:

Файл portfolio.xml (этот файл является моей основной страницей, отображая сетку и отделение предварительного просмотра, пример, использует 3 компании):

<portfolio>
    <company>
        <name>ABC Company</name>
        <sdesc>Consumer products</sdesc>
        <logo-thumb>abcco.jpg</logo-thumb>
        <link>abcco.xml</link>
    </company>

    <company>
        <name>DEF Company</name>
        <sdesc>Communications firm</sdesc>
        <logo-thumb>defco.jpg</logo-thumb>
        <link>defco.xml</link>
    </company>
    <company>
        <name>GHI Corporation</name>
        <sdesc>Electronic products</sdesc>
        <logo-thumb>ghico.jpg</logo-thumb>
        <link>ghico.xml</link>
    </company>
</portfolio>

Следующие дисплеи XSLT, которые кодируют на странице:

<xsl:for-each select="portfolio/company">
     <xsl:sort select="name" />

       <div class="invest-port-thumb">
         <a>
         <xsl:attribute name="href">
              <xsl:value-of select="link" />
         </xsl:attribute>

         <img>
         <xsl:attribute name="src">
              <xsl:value-of select="logo-thumb" />
         </xsl:attribute>
         </img>
         </a>
       </div>

</xsl:for-each>

Это - структура HTML "отделения предварительного просмотра":

<div id="preview">

<div id="preview-name"> [Name to display here] </div>
<div id="preview-desc"> [Description to display here] </div>

</div>

Все 3 логотипа компании загружаются в страницу, каждый отображающий связанное изображение, загруженное из <logo-thumb>. Желаемый эффект к на парении, отобразите содержание <name> в отделении "имени предварительного просмотра" и содержании <sdesc> в отделении "предварительного-просмотра-desc".

6
задан abatishchev 20 January 2013 в 02:05
поделиться

3 ответа

Строго говоря, вы load () можете взять селектор после URL и вернуть только часть вызова ajax.

Итак, что-то вроде:

$('#name_div').load('/path/yourXmlFile.xml name:first');

Теперь выполнение сетевых вызовов каждый раз, когда вы хотите что-то посмотреть, не очень эффективно. Вероятно, вы захотите кэшировать вывод в переменную.

0
ответ дан 17 December 2019 в 22:10
поделиться

Сохраняя семантику вашей страницы и структуру вашей таблицы стилей, я пытаюсь сделать что-то вроде этого:

<xsl:for-each select="portfolio/company"> 
     <xsl:sort select="name" /> 
     <div class="invest-port-thumb"> 
       <a href="{link}"><img src="{logo-thumb}" /></a>
       <div class="preview"> 
         <div class="preview-name"><xsl:value-of select="name" /></div> 
         <div class="preview-desc"><xsl:value-of select="sdesc" /></div> 
       </div> 
     </div> 
</xsl:for-each>

Затем в таблице стилей CSS вы можете использовать псевдокласс : hover и + комбинатор для отображения или скрытия предварительного просмотра. Возникли проблемы с кроссбраузерной совместимостью. Вам следует проверить сайт Stu Nicholls для лучшей семантики и примеров CSS.

1
ответ дан 17 December 2019 в 22:10
поделиться

Я бы ввел имя и описание в привязку как часть привязки или ее дочернего изображения, возможно, используя тег ALT для имени и тег REL для описания.

При наведении курсора на любую привязку я использую jQuery [.attr ()] для получения значений атрибутов, содержащих нужное имя и описание, и вставляю их в соответствующие целевые DIV.

(см. «Категории рецептов» в http://www.masterchef.com.au/home.htm для аналогичного примера)

0
ответ дан 17 December 2019 в 22:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: