Javascript 如何防止按钮的后续单击事件?

Javascript 如何防止按钮的后续单击事件?,javascript,jquery-ui,jquery,Javascript,Jquery Ui,Jquery,我有一个按钮btnAdvSearch,当第一次单击它时,显示的日历会卡住。所以我需要防止按钮的进一步点击 我的代码: $('<button id="btnAdvSearch_' + uniqueNum + '" class="" title="Advanced Search"><span class="ui-button-text">' + btnTitle + '</span></button>')

我有一个按钮
btnAdvSearch
,当第一次单击它时,显示的日历会卡住。所以我需要防止按钮的进一步点击

我的代码:

$('<button id="btnAdvSearch_' + uniqueNum + '" class="" title="Advanced                   Search"><span class="ui-button-text">' + btnTitle + '</span></button>')
        .appendTo($('<div class="ui-dialog-buttonpane buttonHolder" id="buttonHolder_' + uniqueNum + '"></div>')
        .appendTo(this.element))
        .click(function (e) {

            debugger;
            e.preventDefault();
            e.stopPropagation();

            self._validateSearchForm();
            //Check the form validation using jquery validation engine
            $('#frmAdvSearch_' + uniqueNum + '').validationEngine('validate') == true ? self._submitAdvancedSearchQuery(self) : "";
        });
$(''+btnTitle+'')
.appendTo($('')
.appendTo(this.element))
。单击(功能(e){
调试器;
e、 预防默认值();
e、 停止传播();
self._validateSearchForm();
//使用jquery验证引擎检查表单验证
$(“#frmAdvSearch”+uniqueNum+”).validationEngine('validate')==true?self._submitavancedsearchQuery(self):“”;
});
Do

所以当他第一次点击时,按钮进入禁用模式

如果验证失败,不要忘记启用它。

所以当他第一次点击时,按钮进入禁用模式


如果验证失败,请不要忘记启用它。

这是一个按钮,您可以单击任意次数。只需阻止默认操作或在第一次单击后禁用它

因此,在“.click(function(e){”之后更改脚本,如下所示:

.one('click', function (event) {  
    event.preventDefault();
    //do something
    $(this).prop('disabled', true);
});

请查看。

这是一个按钮,您可以按任意次数单击它。只需阻止默认操作或在第一次单击后禁用它即可

因此,在“.click(function(e){”之后更改脚本,如下所示:

.one('click', function (event) {  
    event.preventDefault();
    //do something
    $(this).prop('disabled', true);
});

请看一看。

试试
$(this.prop('disabled',true);
而不是
e.stopPropagation();
试试
$(this.prop('disabled',true);
而不是
e.stopPropagation();
$(this.prop('disabled',true);
this.disabled=true
$(this.prop('disabled',true);是提升的方法,甚至只是
this.disabled=true
@FC”:使用
.one()每个元素最多执行一次处理程序
。因此它对
dblclick
也非常有效。您确定他只想使用该事件一次吗?我不知道他的意思是像两次快速单击一样双击,还是仅仅两次普通单击,在页面中只执行一次。@FC”:使用
.one()每个元素最多执行一次处理程序
。因此它也适用于
dblclick
。你确定他只想使用该事件一次吗?我不知道他的意思是像两次快速单击一样双击,还是仅仅两次普通单击,在页面中仅一次。
.one('click', function (event) {  
    event.preventDefault();
    //do something
    $(this).prop('disabled', true);
});