【问题标题】:How to use jQuery and vanilla JS at EJS templates如何在 EJS 模板中使用 jQuery 和 vanilla JS
【发布时间】:2015-02-21 09:25:51
【问题描述】:

我在 EJS 模板中执行 jQuery 代码时遇到问题。我的代码:

$.json('/data.json', function (data) {
    new EJS({url: 'template.ejs'}).update('mycontainer', {data: data});
})

它有效。但是当我尝试在这个模板上使用一些 jQuery 插件时 - 什么都没有。我的 EJS 模板示例:

<script>
   alert(0);
   $(document).ready(function () {
      $('#someId').someJQplaugin();
   })
</script>
<div id="someId"><%= data.someValue%></div>

插件和警报(!!)不工作。然后我在&lt;% %&gt; 标签之间替换我的代码。警报和 document.ready 工作正常,但 jQuery 在附加的 EJS 模板中找不到对象。

我尝试在模板外使用jQuery,但结果是一样的:

$('#someId') 为空。

如何同时使用 EJS 和 jQuery?

【问题讨论】:

    标签: javascript jquery ejs embedded-javascript


    【解决方案1】:

    我想我解决了一个问题。 EJS 没有关于更新/插入的回调。我已经像这样扩展 EJS:

    EJS.Prototype = {
       ...
       update: function(element, options, cb) {
       ...
       // add this to the end of function
       if(cb != null)
          cb();
       }
    

    现在我可以像这样执行回调了:

    new EJS({url: template}).update(obj.attr('data-selector'), {data: data}, function () {
       // it works
       $('#someId').someJQplugin();
    });
    

    希望,这会对某人有所帮助)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-11
      • 2015-06-24
      • 1970-01-01
      • 2021-05-09
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      • 2020-12-25
      相关资源
      最近更新 更多