Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何禁用onclick事件?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何禁用onclick事件?

Javascript 如何禁用onclick事件?,javascript,jquery,html,Javascript,Jquery,Html,您可以从plusbutton功能本身中禁用。首先,将元素传递到函数中,如下所示: <form id="QandA" action="<?php echo htmlentities($action); ?>" method="post"> <table id="question"> <tr> <td colspan="2"> <a onclick="return plusbutton();

您可以从
plusbutton
功能本身中禁用。首先,将元素传递到函数中,如下所示:

    <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>
但是由于您使用的是jQuery,所以最好使用处理程序。因此,给链接一个id,而不是onclick,如下所示:

function plusbutton(element) {
    element.onclick = '';
    /* then do whatever plusbutton did before */
}
请尝试以下代码:

$(document).ready(function() {
    $('#plusbutton').one('click', function(ev) {
        plusbutton();
        return false;
    });
});
以及您的html:

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


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

此.onclick=“
是您想要的吗?您正在将事件附加到一个不同于OP的元素。另外,最好只使用jQuery.one而不是绑定/解除绑定。在本例中,jQuery.one是最佳解决方案。。谢谢你的评论。我通常不使用。但在这种情况下,一个是最好的解决方案+1在您的回答@BenLeeHi时,我更新了相关代码,我尝试了您的jquery理论,但它没有禁用单击。请查看更新后的代码,以便您有希望看到错误所在。好吧,您还没有说javascript代码是在哪里定义的。很可能必须将单击处理程序放入document.ready块中。我更新了我的答案来说明我的意思。另外,我刚刚注意到你有一个
$('.plusimage')。live('click',…
处理程序。为什么?删除它,这将使它永远不会被删除。此外,我注意到您的plusbutton方法包含一个参数
加上_id
——您没有解释它的用途,您的原始代码也没有使用它。我需要
$('.plusimage')。live('click',…
函数,我认为使用非jquery方式更好,因为我不希望#出现在url的末尾,如果使用非jquery方式,那么我需要做什么才能让它以这种方式工作?
$(document).ready(function() {
    $('#plusbutton').one('click', function(ev) {
        plusbutton();
        return false;
    });
});
$('#addQuestionBtn').bind("click",function(){
    $('#addQuestionBtn').unbind("click");   
    insertQuestion(document.form);
});
<input id="addQuestionBtn" name="addQuestion" type="button" value="Add Question" />
event.preventDefault();