我有这样的代码:
$('#people_nav>.prev, #people_nav>.next').click(function(){
// Here I need to disable event of click for needed elements, see code below
$('#people_nav>.prev, #people_nav>.next').unbind('click');
...
code
...
// Here I need resume event for click() function. How?
});如何恢复click()函数的事件?应该在click(function(){...});的身体里.
发布于 2014-06-11 12:17:31
您可以为此使用on()和off()以及一个命名的函数
var elements = $('#people_nav > .prev, #people_nav > .next');
elements.on('click', doStuff); // bind handler
function doStuff() {
elements.off('click'); // unbind handler
/*...
code
...*/
elements.on('click', doStuff); // rebind handler
});发布于 2014-06-11 12:16:54
您可以使用命名函数。有点像
var element = $('#people_nav>.prev, #people_nav>.next'); //cache for better performance
var yourFunction = function () {
// Here I need to disable event of click for needed elements, see code below
element.off('click'); //unbind event
...
code
...
// Here I need resume event for click() function. How?
element.click(yourFunction);
};
element.click(yourFunction);但是,我建议使用on()和off()。
发布于 2014-06-11 12:17:09
你只需要使用off
$('#people_nav>.prev, #people_nav>.next').off('click');如果jquery >= 1.7喜欢on和off方法,而不是bind和unbind方法
https://stackoverflow.com/questions/24162700
复制相似问题