通过Javascript激活/停用onclick事件?

时间:2012-05-31 09:14:19

标签: javascript html events

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

这里有更好的解释代码x):

<ol id="answerList" type="A">
      <img class="imgLine" src="" id="answer-a-img" /><li onclick="clickLine(this);" id="answer-a" ></li>
      <img class="imgLine" src="" id="answer-b-img" /><li onclick="clickLine(this);" id="answer-b" ></li>
      <img class="imgLine" src="" id="answer-c-img" /><li onclick="clickLine(this);" id="answer-c" ></li>
      <img class="imgLine" src="" id="answer-d-img" /><li onclick="clickLine(this);" id="answer-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 = "";

但是现在,当我获得新数据时,我没有成功重新激活oncl​​ickevent,我试过这个:

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 ^^

2 个答案:

答案 0 :(得分:1)

类似的东西:

    $(".imgLine").click(function(event)
    {
         $('.imgLine').unbind();
         event.preventDefault();
    });

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

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

答案 1 :(得分:0)

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()函数。