Javascript click()函数中的bind()和unbind()
我有以下代码:Javascript click()函数中的bind()和unbind(),javascript,jquery,Javascript,Jquery,我有以下代码: $('#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 ...
$('#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(){…})的主体中代码>..您可以使用命名函数。差不多
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);
但是,我建议您只需要使用和
如果jquery版本>=1.7更喜欢打开
和关闭
方法,而不是绑定
和解除绑定
方法,您可以为此使用and和命名函数
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
});
你说的“简历”是什么意思?是否要临时禁用任何单击事件,还是特别希望事件暂停然后继续?
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
});