如何防止在Jquery中多次调用函数

Jmu*_*sul 0 javascript jquery

我有以下代码:

$('#main-button').click(function(){

    $('#button').click(function(){
        alert('something');
    });
});
Run Code Online (Sandbox Code Playgroud)

每当我单击#main-button,说3次,然后单击#button,就会出现3个弹出框.如何防止这种情况,因此无论点击#main-button多少次,单击#button时只会出现一个弹出框?

sab*_*ker 5

使用jQuery 一个,或说明你正在尝试做的,可以有一个更好的解决方案.

$('#main-button').click(function(){

    $('#button').one('click',function(){
        alert('something');
    });
});
Run Code Online (Sandbox Code Playgroud)

例如,如果您的问题#button仅在您单击时出现,#main-button则使用jquery on()在适当级别使用委派.(我使用文档中的委托,因为您的示例不明确)

$('#main-button').click(function(){

});


$(document).on('click','#button',function(){
   alert('something');
});
Run Code Online (Sandbox Code Playgroud)


fro*_*tto 5

或者您可以使用此代码:

$('#main-button').click(function(){

    $('#button').unbind("click").click(function(){
        alert('something');
    });
});
Run Code Online (Sandbox Code Playgroud)

更新#1

unbind被弃用的jQuery 1.7.改用off方法.