#javascript #jquery #jquery-templates
#javascript #jquery #jquery-шаблоны
Вопрос:
Я не могу заставить его работать. Как мне добавить JavaScript в шаблон jQuery?
Я попробовал это следующим образом, но безуспешно:
<script id="geoShapeTooltip" type="text/x-jquery-tmpl">
${ alert ("TEXT"); }
<table id="tooltipTable" >
<tr><th class="tooltipHeading" colspan="2">
${item.fieldValues.NAME}, ${item.fieldValues.REGION}</th></tr>
<tr>
<td>Population:</td>
<td>${item.fieldValues.POP2005}</td>
</tr>
</table>
</script>
Вот моя проблема на скрипке.
Редактировать: Я нашел другое решение. В шаблонах Infragistics вы можете выполнять javascript в операторах if. {{если ВАШ_JAVASCRIPT_GOES_HERE}}Некоторый текст}}{{/if}} И если вы хотите, вы можете добавить значения к параметру, чтобы отобразить их позже. Немного халтурно, но работает.
Комментарии:
1. @Thauwa stephenwalther.com/archive/2010/11/30/… = допустимо
2. Вам нужно найти функцию обратного вызова JavaScript для события наведения курсора мыши на всплывающую подсказку (если таковая существует). Начните с просмотра документации igMap.
3. Это asp.net управление, но часть, которую я опубликовал, является jQuery. И, как вы видите, я попробовал это, как в статье, которая не работает. Он просто отображает ${ alert («TEXT»); } в виде текста.
Ответ №1:
Я попытался вставить вложенный обычный тег JavaScript внутри области jQuery templating script, и, похоже, он работал нормально:
<script id="geoShapeTooltip" type="text/x-jquery-tmpl">
<table id="tooltipTable" >
<tr><th class="tooltipHeading" colspan="2">
${item.fieldValues.NAME}, ${item.fieldValues.REGION}</th></tr>
<tr>
<td>Population:</td>
<td>${item.fieldValues.POP2005}</td>
</tr>
</table>
<script type="text/javascript">
alert('${item.fieldValues.NAME}');
</script>
</script>
Очевидно, что это имеет тот недостаток, что вы эффективно добавляете новый <script type="text/javascript">..</script>
тег в DOM каждый раз, когда наведен указатель мыши на страну. Альтернативный и правильный способ сделать это — выяснить, какое событие запускается в документации igMap при наведении курсора мыши на страну / район, и написать обработчик события в вашем document.ready обработчик для прослушивания этого события. Если вы делаете это таким образом, вам нужно использовать on
делегированный обработчик событий jQuery для прослушивания любых событий, относящихся к определенному классу (т.Е. geoShapeTooltip
), по мере и когда они динамически добавляются на страницу.
Комментарии:
1. Хорошее предложение с встроенным тегом script. Через некоторое время я нашел другой способ. seriesMouseLeftButtonUp работает с igMap. Даже если это нигде не задокументировано -.-