【问题标题】:Using JavaScript in a jQuery template在 jQuery 模板中使用 JavaScript
【发布时间】:2014-07-07 09:42:41
【问题描述】:

我无法让它工作。如何将 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>

这是我在fiddle 上的问题。

编辑:我找到了不同的解决方案。在 Infragistics 模板中,您可以在 if 语句中执行 javascript。 {{if YOUR_JAVASCRIPT_GOES_HERE}}一些文字}}{{/if}} 如果需要,您可以向参数添加值,以便稍后显示。有点hacky,但可以。

【问题讨论】:

  • 你需要找到工具提示悬停/点击事件的JavaScript回调函数(如果有的话)。首先查看 igMap 文档。
  • 这是一个asp.net控件,但我发布的部分是jQuery。如您所见,我像在文章中那样尝试过,但不起作用。它只显示 ${ alert ("TEXT"); } 作为文本。

标签: javascript jquery jquery-templates


【解决方案1】:

我尝试在 jQuery 模板脚本区域内插入一个嵌套的普通 JavaScript 标记,它似乎工作正常:

<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>

显然,这有一个缺点,即每次将鼠标悬停在一个国家/地区上时,您都会有效地向 DOM 添加一个新的&lt;script type="text/javascript"&gt;..&lt;/script&gt; 标签。另一种正确的方法是找出当一个国家/地区悬停在 igMap 文档中触发的事件,并在您的 document.ready 处理程序中编写一个事件处理程序来侦听该事件。如果这样做,则需要使用 jQuery 的 on 委托事件处理程序来侦听与特定类(即 geoShapeTooltip)相关的任何事件,以及何时将它们动态添加到页面。

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

【讨论】:

  • 内联脚本标签的好建议。过了一会儿,我找到了另一种方法。 seriesMouseLeftButtonUp 适用于 igMap。即使它没有记录在任何地方-.-
猜你喜欢
  • 2011-08-25
  • 2015-03-09
  • 2010-10-20
  • 1970-01-01
  • 2011-07-21
  • 2021-12-11
  • 1970-01-01
  • 2011-12-01
相关资源
最近更新 更多