javascript - 如何使这个内联 JavaScript 外部化?
问题描述
我目前正在开发音乐播放器 chrome 扩展,我的 HTML 没有响应。我发现这是因为我的 onclick 函数有内联 javascript。
html:
<button id="pre" onclick="prev()"><img src="images/prev.png" height="90%" width="90%"/></button>
<button id="play" onclick="playOrPauseSong()"><img src="images/play.png"/></button>
<button id="next" onclick="next()"><img src="images/next.png" height="90%" width="90%"/></button>
javascript:
function playOrPauseSong(){
if(song.paused)
{
song.play();
$("#play img").attr("src","images/pause.png");
}
else
{
song.pause();
$("#play img").attr("src","images/play.png");
}
}
当然,对于 prev 函数和 next 函数,我有相同的问题,但它们都应该具有我假设的相同解决方案。
解决方案
就您已经在使用 jQuery 而言(如果您不使用的话,一切都不会发生太大变化),您可以享受 jQuery 提供的事件绑定方法,例如:
HTML:
<button id="play">
<img src="images/play.png"/>
</button>
JavaScript:
$("#play").on("click", function() {
if(song.paused) {
song.play();
$("#play img").attr("src","images/pause.png");
}
else {
song.pause();
$("#play img").attr("src","images/play.png");
}
}
这样,您的 JavaScript 代码可以与 HTML 标记完全分离。
PS 我会发表评论,但没有足够的声誉。
推荐阅读
- c# - 在实体框架中禁用自动迁移
- angular4-httpclient - angular 4 http删除方法不接受请求正文
- python - 什么是在生产中运行 django/flask 管理命令的好方法
- abap - 在内部表处循环并使用 if 语句删除内部表中的一行
- javascript - 从 HTML 创建的 DraftJS 编辑器不起作用
- python - 在 Python 和 pandas 中轻松格式化:未知格式代码
- json - 使用 Angular 5 将数组和嵌套 json 显示到 Ag-grid
- java - 当函数在y时间间隔内抛出异常时重试函数调用n次
- r - 简单的 R 命令不返回所有值
- c++ - 不简化地在 CUDD 中表示 BDD