[英]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.