通过 Javascript 激活/停用点击事件

Activate/Deactivate onclick event via Javascript?

本文关键字:事件 Javascript 激活 通过      更新时间:2023-09-26

我尝试像提问一样做,当您单击 1 个答案时,检查它是否是好答案,然后停用 onclick 事件,单击另一个按钮更改问题并添加新答案后,我想重新激活单击,但我不知道如何在 JavaScript 中执行此操作:/

这里的代码是为了更好地解释x):

<ol id="answerswerList" type="A">
      <img class="imgLine" src="" id="answerswer-a-img" /><li onclick="clickLine(this);" id="answerswer-a" ></li>
      <img class="imgLine" src="" id="answerswer-b-img" /><li onclick="clickLine(this);" id="answerswer-b" ></li>
      <img class="imgLine" src="" id="answerswer-c-img" /><li onclick="clickLine(this);" id="answerswer-c" ></li>
      <img class="imgLine" src="" id="answerswer-d-img" /><li onclick="clickLine(this);" id="answerswer-d" ></li>
</ol>

这是答案,onclick事件正在工作,并且调用clickLine函数

我通过这样做停用了 onclick 事件:(我知道它不干净,但我没有看到其他方式:/)

document.getElementById('answer-a').onclick = "";
document.getElementById('answer-b').onclick = "";
document.getElementById('answer-c').onclick = "";
document.getElementById('answer-d').onclick = "";

但是现在,当我获得新数据时,我没有成功重新激活onclickevent,我尝试了以下方法:

document.getElementById('answer-a').onclick = "clickLine(this);";
document.getElementById('answer-b').onclick = "clickLine(this);";
document.getElementById('answer-c').onclick = "clickLine(this);";
document.getElementById('answer-d').onclick = "clickLine(this);";

但没有工作:/

谢谢!

ps:如果有解决方案,我可以使用Jquery^^

像这样:

    $(".imgLine").click(function(event)
    {
         $('.imgLine').unbind();
         event.preventDefault();
    });
    $("a#activate").click(function(event)
    {
        $('.imgLine').bind();        
        event.preventDefault();
    });

其中 a#activate 表示下一个问题按钮。

document.getElementById('answer-a').onclick = "javascript:clickLine(this);";
document.getElementById('answer-b').onclick = "javascript:clickLine(this);";
document.getElementById('answer-c').onclick = "javascript:clickLine(this);";
document.getElementById('answer-d').onclick = "javascript:clickLine(this);";

尝试像这样执行。首先检查你有javascript:clickLine()函数吗?