jQuery想重载按钮点击功能

问题描述:

我已经有一个jQuery .on()函数,其中点击事件是在按钮上传递的。jQuery想重载按钮点击功能

我想从点击按钮超过1限制用户,但我不想改变当前的功能,而不是编写新功能

$('button').on('click', function() { 
 
    alert('hi'); 
 
}); 
 

 
$('button').click(function(event) { 
 
    var count = 0; 
 
    count = count + 1; 
 
    if (count > 1) { 
 
     event.preventDefault(); 
 
     console.log('dont call alert'); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<button>Click Me !</button>

+0

您可以使用jQuery。一():http://api.jquery.com/one/ –

+0

我已经写在另一个文件中的。对()函数,我不有权访问该文件...所以想覆盖它 – Jay

jQuery off()方法删除元素的事件处理程序。点击按钮时,您可以删除click事件。使用这项工作,按钮点击事件只会触发一次。

$("button").click(function(event){ 
 
    alert(); 
 
    $(this).off("click"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button>Button</button>

您可以使用jQuery .one()方法:

$('button').one('click', function() { 
 
    alert('hi'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<button>Click Me !</button>

+0

我已经有一个.on()函数写在另一个文件中,我没有访问该文件...所以想重写它 – Jay

我认为你正在寻找的东西像下面。

$('button').on('click', function() { 
 
    alert('hi'); 
 
}); 
 

 

 
var isCliked = true; 
 
$('button').click(function() { 
 
    $('button').off('click'); 
 

 
    isCliked && $('button').click(function() { 
 
     console.log('dont call alert'); 
 
     isCliked = false; 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button> 
 
    Click Me ! 
 
</button>