簡體   English   中英

如何在EJS模板上使用jQuery和Vanilla JS

[英]How to use jQuery and vanilla JS at EJS templates

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

插件和警報(!!)無法正常工作。 然后,我在<% %>標簽之間替換我的代碼。 Alert和document.ready可以正常工作,但是jQuery在附加的EJS模板上找不到該對象。

我嘗試過使用jQuery模板外,但結果是相同的:

$('#someId')為空。

如何一起使用EJS和jQuery?

我想我解決了一個問題。 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();
});

希望這會幫助某人)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM