Использование JavaScript в шаблоне jQuery

#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 ), по мере и когда они динамически добавляются на страницу.

http://jsfiddle.net/W5ys9/6/

Комментарии:

1. Хорошее предложение с встроенным тегом script. Через некоторое время я нашел другой способ. seriesMouseLeftButtonUp работает с igMap. Даже если это нигде не задокументировано -.-