如何禁用onclick事件?

时间:2012-11-25 13:02:21

标签: javascript jquery html

    <form id="QandA" action="<?php echo htmlentities($action); ?>" method="post">

    <table id="question">

    <tr>
    <td colspan="2">
    <a onclick="return plusbutton();">
    <img src="Images/plussign.jpg" width="30" height="30" alt="Look Up Previous Question" class="plusimage" id="mainPlusbutton" name="plusbuttonrow"/>
    </a>
    <span id="plussignmsg">(Click Plus Sign to look up Previous Questions)</span>
    </td>
    </tr>
    </table>


    </form>

在上面的代码中,当满足if语句时,我可以用另一个图像替换图像。但我的问题是,当图像被替换时,它不会禁用点击事件。我的问题是,当替换图像时,如何禁用onclick事件onclick="return plusbutton();

3 个答案:

答案 0 :(得分:4)

您在plusbutton功能本身内禁用。首先,将元素传递给函数,如下所示:

<a onclick="return plusbutton(this);">

然后在函数中禁用它:

function plusbutton(element) {
    element.onclick = '';
    /* then do whatever plusbutton did before */
}

但是因为你使用的是jQuery,所以最好使用处理程序。所以给链接一个id但不是onclick,如下所示:

<a id="plusbutton" href="#">

并使用jQuery.one()绑定仅发生一次的点击处理程序:

$(document).ready(function() {
    $('#plusbutton').one('click', function(ev) {
        plusbutton();
        return false;
    });
});

答案 1 :(得分:1)

event.preventDefault(); 

将阻止元素继续其正常功能。

答案 2 :(得分:0)

试试这段代码:

$('#addQuestionBtn').bind("click",function(){
    $('#addQuestionBtn').unbind("click");   
    insertQuestion(document.form);
});

你的HTML:

<input id="addQuestionBtn" name="addQuestion" type="button" value="Add Question" />