javascript - 单击一次后如何删除onclick功能
问题描述
我对任何类型的编码都非常非常非常非常陌生,无论我在说什么,就像我今晚刚开始一样新,但我仍然想尝试做一些事情,所以我会尽力解释我想做的事情
这就像,第一张图片的样子
这是我的代码:
<img src="/images/homedoll.gif" title="click me!" id="gotdam" onclick="imagefun()">
现在我想要发生的是,单击时,首先它会在晃动时闪烁成第二张图像,然后在第二张之后它会变成第三张图像,其中它应该是图形的“最终状态”,所以说话
(它应该是一个闪烁不同颜色的gif,但我只是放一个截图)
这就是我编码所有奇怪的东西 idk 的方式,如果我做得最有效,但它有效:
function imagefun() {
var Image_Id = document.getElementById('gotdam');
if (Image_Id.src.match("images/homedoll.gif")) {
Image_Id.src = "images/ohno.gif";
document.getElementById('gotdam').className = "ohnoshake"
}
else {
Image_Id.src = "images/homedoll.gif";
}
setTimeout(gosh, 500)
}
function gosh() {
var Image_Id = document.getElementById('gotdam');
if (Image_Id.src.match("images/ohno.gif")) {
Image_Id.src = "images/gosh.gif";
}
else {
Image_Id.src = "images/homedoll.gif";
}
}
我想做的是,在它变成第三张图片之后,我不希望它再被点击(因为再次点击它后它只是返回到第一张图片,你可以再次运行该功能,我只是不'不想那样)而且我也不希望图像标题仍然说“点击我” T_T idk如何跨越这个障碍它看起来如此小和愚蠢但是是的我遇到了一堵墙。
如果我想实现的目标都不可能,我想我会放弃它并尝试不同的方法。在此先感谢您的帮助!
解决方案
在您的gosh
函数中,在条件之后,您可以使用删除onclick
属性el.removeAttribute('onclick')
,这将使图像不可点击,直到页面再次刷新。然后使用 el.title = 'snarky comment' 更改标题属性
function imagefun() {
var Image_Id = document.getElementById('gotdam');
if (Image_Id.src.match("https://letterstotwilight.com/wp-content/uploads/recovered/tumblr_m52lik6Nmx1qj7jmb.gif")) {
Image_Id.src = "https://1.bp.blogspot.com/-3Yi0jVls_0s/UArdaOd0qwI/AAAAAAAAJVY/nbziWbvaNuI/s1600/cat-giving-massage-gif.gif";
document.getElementById('gotdam').className = "ohnoshake"
} else {
Image_Id.src = "https://letterstotwilight.com/wp-content/uploads/recovered/tumblr_m52lik6Nmx1qj7jmb.gif";
}
setTimeout(gosh, 500)
}
function gosh() {
var Image_Id = document.getElementById('gotdam');
if (Image_Id.src.match("https://1.bp.blogspot.com/-3Yi0jVls_0s/UArdaOd0qwI/AAAAAAAAJVY/nbziWbvaNuI/s1600/cat-giving-massage-gif.gif")) {
Image_Id.src = "https://media1.popsugar-assets.com/files/thumbor/TrU_oBggeqMKuI-aNgK81jatoG4/160x160/filters:format_auto-!!-:strip_icc-!!-:sharpen-!1,0,true!-/2014/09/02/040/n/1922507/2ba9af03f83899bf_giphy-5/i/Someone-trouble.gif";
} else {
Image_Id.src = "https://letterstotwilight.com/wp-content/uploads/recovered/tumblr_m52lik6Nmx1qj7jmb.gif";
}
document.getElementById('gotdam').removeAttribute('onclick')
document.getElementById('gotdam').title = "So unhappy"
}
<img src="https://letterstotwilight.com/wp-content/uploads/recovered/tumblr_m52lik6Nmx1qj7jmb.gif" title="click me!" id="gotdam" onclick="imagefun()">
推荐阅读
- java - 在方法中使用不同的 getter
- udp - 当两个客户端向一个 Socket 发送 UDP 数据包时会发生什么
- javascript - 仅设置某些项目时如何查询缓存?
- amazon-web-services - boto3 会话持续多长时间?在我的服务中,我希望从多个区域获取实例并考虑为每个区域创建一个会话
- terraform - 如何使用 Terraform 调整 vmWare Cloud Director 中的计算机名称属性?
- r - 在 r 中最大化/优化具有约束的函数
- typescript - mathjs 数字只有打字稿?
- swift - 在 ReactiveSwift 中同步组合属性
- python - 如何通过python中的正则表达式替换/修改模式?
- c# - 在 for 循环中存储数据