首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数中的bind()和unbind()函数

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

Stack Overflow用户
提问于 2014-06-11 12:15:32
回答 3查看 145关注 0票数 0

我有这样的代码:

代码语言:javascript
复制
$('#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(){...});的身体里.

EN

回答 3

Stack Overflow用户

发布于 2014-06-11 12:17:31

您可以为此使用on()off()以及一个命名的函数

代码语言:javascript
复制
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
});
票数 1
EN

Stack Overflow用户

发布于 2014-06-11 12:16:54

您可以使用命名函数。有点像

代码语言:javascript
复制
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()

票数 0
EN

Stack Overflow用户

发布于 2014-06-11 12:17:09

你只需要使用off

代码语言:javascript
复制
$('#people_nav>.prev, #people_nav>.next').off('click');

如果jquery >= 1.7喜欢onoff方法,而不是bindunbind方法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24162700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档