简体   繁体   English

click()函数中的bind()和unbind()

[英]bind() and unbind() in click() function

I have this 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?

});

How can I resume event for click() function? 如何恢复click()函数的事件? It should be in body of click(function(){...}); 它应该在click(function(){...});正文中click(function(){...}); ... ...

You can use on() and off() for that, and a named function 您可以使用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
});

You can use a named function. 您可以使用命名函数。 Something like 就像是

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);

However, I would recommend the use of on() and off() 但是,我建议使用on()off()

You just need to use off 你只需要off

$('#people_nav>.prev, #people_nav>.next').off('click');

If jquery version >= 1.7 prefer on and off methods instead of bind and unbind methods 如果jQuery版本> = 1.7,则首选onoff方法,而不是bindunbind方法

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM