jSuites Template
Event handling
jSuites.template
makes it possible to create events in your template in a very simple way. You define the events in the template and create the corresponding event listener in the template object, see an example of friend requests below:
<html>
<script src="https://jsuites.net/v4/jsuites.js"></script>
<link rel="stylesheet" href="https://jsuites.net/v4/jsuites.css" type="text/css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@jsuites/template/template.min.css" type="text/css" />
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jsuites/template/template.min.js"></script>
<div class='row'>
<div class='column p10'>
<div id='jsuites-template' style='border:1px solid #ccc; padding: 10px;'></div>
</div>
</div>
<script>
var template = jSuites.template(document.getElementById('jsuites-template'), {
url: "/plugins/users.json",
pagination: 3,
template: {
item: function(data,obj) {
return `
<div data-index="${data.id}">
<div class="row">
<div class="column f1 p6 center">
<div class="column">
<img class="users-large mr1" alt="user" src="${data.picture}">
</div>
<div class="column f1">
${data.name}
</div>
</div>
<div class="column f1 p10 center">
<button onclick="this.accept(e)" class="jbutton dark" style="margin: 15px 0px;" >Accept</button>
</div>
<div class="column f1 p10 center">
<button onclick="this.decline(e)" class="jbutton dark" style="margin: 15px 0px; background: red;">Decline</button>
</div>
</div>
</div>
`
},
accept: function(e) {
alert('friend request accepted');
var element = e.target.closest('[data-index]');
if (element) {
template.removeItem(element);
}
},
decline: function(e) {
var element = e.target.closest('[data-index]');
if (element) {
template.removeItem(element);
}
}
}
});
</script>
</html>