javascript - 在 jQuery 模板中使用 JavaScript

标签 javascript jquery jquery-templates

我无法让它工作。如何将 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,但是有效。

最佳答案

我尝试在 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>

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

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

关于javascript - 在 jQuery 模板中使用 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24607541/

相关文章:

javascript - NodeJS session 认证

handlebars.js - 为什么我们应该将模板包装在脚本 block 中?

javascript - 将网站上的所有右键点击变成左键点击

javascript - AJAX 不更新部分 View

javascript - jqplot日期渲染,仅在x轴上显示星期日

javascript - 如何使用图像和字符串将数据传递给ajax

php - 仅在第一次单击时添加动态行

jquery-templates - 在 &lt;script&gt; 标签中使用自定义类型属性,例如 jQuery 的 text/x-jquery-tmpl

jquery - Grails 干扰 jquery-tmpl 语法

javascript - 根据选定的主要类别过滤选择类别(AngularJS)