Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以临时重写事件侦听器吗?_Javascript_Jquery - Fatal编程技术网

Javascript 我可以临时重写事件侦听器吗?

Javascript 我可以临时重写事件侦听器吗?,javascript,jquery,Javascript,Jquery,我想为整个文档添加一个事件监听器,如果程序在函数中,则添加另一个事件监听器 例如 运行时: click -> foo(); click -> foo(); ... f1(); click -> bar(); click -> bar(); 假设可以从文档中删除所有单击事件处理程序,则可以在附加新事件之前使用: $(document).click(foo); function f1(){ $(document).off('click').click

我想为整个文档添加一个事件监听器,如果程序在函数中,则添加另一个事件监听器

例如

运行时:

 click -> foo(); 
 click -> foo();
  ...
 f1();
 click -> bar();
 click -> bar();

假设可以从
文档
中删除所有
单击
事件处理程序,则可以在附加新事件之前使用:

$(document).click(foo);

function f1(){
   $(document).off('click').click(bar);
};

假设可以从
文档
中删除所有
单击
事件处理程序,您可以在附加新事件之前使用:

$(document).click(foo);

function f1(){
   $(document).off('click').click(bar);
};

有点晚了,但这里有一些代码可以满足您的需要:

HTML:


有点晚了,但这里有一些代码可以满足您的需要:

HTML:

<button id="f1" style="display:none;">Button for f1</button>
function f1() {
    $(document).off('click').on('click', foo);
}

var foo = function () {
    $('button').show().click(f2);
};

function f2(e) {
    e.stopPropagation();
    $(document).off('click', foo).on('click', bar);
}

var bar = function () {
    $('button').hide();
    f1();
};

f1();