【问题标题】:Activate/Deactivate onclick event via Javascript?通过Javascript激活/停用onclick事件?
【发布时间】:2012-06-05 12:50:06
【问题描述】:

我尝试做一个问卷调查,当您单击 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 = "";

但是现在,当我得到新数据时,我没有成功重新激活 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 ^^

【问题讨论】:

    标签: javascript html events


    【解决方案1】:

    类似:

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

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

    【讨论】:

    • 感谢您的回答,但"a#activate""a#deactivate" 来自哪里? ^^',并且不需要绑定函数作为参数? :s
    • 我只是用了一个#deactivate 来表示你可以点击去激活的元素。请稍等,我会更新答案,为您量身定制更多内容。
    【解决方案2】:
    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() 函数。

    【讨论】:

    • 没用,是的,我有 clickLine 功能:function clickLine(target) { // blabla code }
    • $('#answer-a').click(function(){ clickLine(this);});尝试执行此操作。
    猜你喜欢
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-08
    相关资源
    最近更新 更多