javascript - 如何添加作为模板文字一部分的按钮的 onclick 函数?
问题描述
我有一个按钮作为模板文字的一部分。我想在单击按钮时调用原型函数(带参数)。我怎么做?
我发现通过将要调用的函数注册为窗口的一部分,可以实现这一点。但我希望调用作为原型一部分的函数。在下面的示例中,showFilmDetails
需要调用它的签名应该是
FilmCard.prototype.showFilmDetails = function(url){
alert(url);
}
示例代码:
function FilmCard(data){
}
FilmCard.prototype.render = function(data){
return this.getTemplate(data);
}
window.showFilmDetails = function(url){
alert(url);
}
FilmCard.prototype.getTemplate = function(data){
var self = this;
return `
<div class="card">
<h4><button onclick="showFilmDetails('${data.url}')">${data.title}</button></h4>
<div>
<div>Director: ${data.director}</div>
<div>Producer: ${data.producer}</div>
<div>Release Date: ${data.release_date}</div>
</div>
</div>
`;
}
在将其作为原型的一部分后如何调用该函数并仍然提醒评估的 url?我不想在按钮上显式添加事件侦听器。
解决方案
通过将函数括在括号中来解决它。
FilmCard.prototype.showFilmDetails = (url) => {
alert(url);
}
FilmCard.prototype.getTemplate = function(data){
var self = this;
return `
<div class="card">
<h4><button onclick="(${self.showFilmDetails})('${data.url}')">${data.title}</button></h4>
<div>
<div>Director: ${data.director}</div>
<div>Producer: ${data.producer}</div>
<div>Release Date: ${data.release_date}</div>
</div>
</div>
`;
}
推荐阅读
- java - 有没有办法在eclipse中编写html代码和java来进行应用程序开发?
- browser - 如果页面未发送任何请求,如何使用 puppeteer 下载文件
- c - C中的链表函数参数
- python - Azure Python 函数重试限制在逻辑应用中不起作用
- ios - Tableview 单元格在向下滚动时消失,除了每个部分的最后一个单元格变成灰色
- python - 如何将 plt.yscale('log') 用于 0 到 1 之间的特定值?
- python - 如何在 Python 中修复超出范围的字符串索引
- javascript - 如何找出两个给定日期之间的百分比?
- swiftui - SwiftUI - 带有嵌套 NavigationViews 的 TabView 重置 Navigationflow
- javascript - Symfony NucleosAntiSpamBundle