Понятие того, что я пытаюсь сделать, довольно просто. У меня есть сетка логотипов компании, загруженных через 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".
Строго говоря, вы load ()
можете взять селектор после URL и вернуть только часть вызова ajax.
Итак, что-то вроде:
$('#name_div').load('/path/yourXmlFile.xml name:first');
Теперь выполнение сетевых вызовов каждый раз, когда вы хотите что-то посмотреть, не очень эффективно. Вероятно, вы захотите кэшировать вывод в переменную.
Сохраняя семантику вашей страницы и структуру вашей таблицы стилей, я пытаюсь сделать что-то вроде этого:
<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.
Я бы ввел имя и описание в привязку как часть привязки или ее дочернего изображения, возможно, используя тег ALT для имени и тег REL для описания.
При наведении курсора на любую привязку я использую jQuery [.attr ()] для получения значений атрибутов, содержащих нужное имя и описание, и вставляю их в соответствующие целевые DIV.
(см. «Категории рецептов» в http://www.masterchef.com.au/home.htm для аналогичного примера)