Javascript 添加事件侦听器而不重写

Javascript 添加事件侦听器而不重写,javascript,jquery,javascript-events,keyup,Javascript,Jquery,Javascript Events,Keyup,我正在为某个输入设置一个事件侦听器。然后在代码的后面,我需要能够在不重写第一个事件的情况下向该侦听器添加另一个事件(两个函数都必须执行)。这有可能实现吗 我试过: $input.keyup(function...) $input.bind('keyup',function(){...}); $input.addEventListener('keyup',function(){...}); 而且我还没有找到任何工作。您可以通过以下方式帮助您的听众: 这将允许您在不删除第一个侦听器的情况下调用

我正在为某个输入设置一个事件侦听器。然后在代码的后面,我需要能够在不重写第一个事件的情况下向该侦听器添加另一个事件(两个函数都必须执行)。这有可能实现吗

我试过:

$input.keyup(function...)

$input.bind('keyup',function(){...});

$input.addEventListener('keyup',function(){...});
而且我还没有找到任何工作。

您可以通过以下方式帮助您的听众:

这将允许您在不删除第一个侦听器的情况下调用
$input.off('keyup.two')

您可以通过以下方式调用侦听器:

这将允许您在不删除第一个侦听器的情况下调用
$input.off('keyup.two')

您可以通过以下方式调用侦听器:

这将允许您在不删除第一个侦听器的情况下调用
$input.off('keyup.two')

您可以通过以下方式调用侦听器:


这将允许您在不删除第一个侦听器的情况下调用
$input.off('keyup.two')

除非调用,否则添加事件处理程序不会破坏先前添加的事件处理程序

这里有一个例子。单击按钮时,两个事件处理程序都会触发

var$p=$('p');
$(“按钮”)。单击(函数(){
$p.html($p.html()+'*事件处理程序1*);
})
$(“按钮”)。单击(函数(){
$p.html($p.html()+'*事件处理程序2*);
})

点击我

除非调用,否则添加事件处理程序不会与以前添加的事件处理程序相冲突

这里有一个例子。单击按钮时,两个事件处理程序都会触发

var$p=$('p');
$(“按钮”)。单击(函数(){
$p.html($p.html()+'*事件处理程序1*);
})
$(“按钮”)。单击(函数(){
$p.html($p.html()+'*事件处理程序2*);
})

点击我

除非调用,否则添加事件处理程序不会与以前添加的事件处理程序相冲突

这里有一个例子。单击按钮时,两个事件处理程序都会触发

var$p=$('p');
$(“按钮”)。单击(函数(){
$p.html($p.html()+'*事件处理程序1*);
})
$(“按钮”)。单击(函数(){
$p.html($p.html()+'*事件处理程序2*);
})

点击我

除非调用,否则添加事件处理程序不会与以前添加的事件处理程序相冲突

这里有一个例子。单击按钮时,两个事件处理程序都会触发

var$p=$('p');
$(“按钮”)。单击(函数(){
$p.html($p.html()+'*事件处理程序1*);
})
$(“按钮”)。单击(函数(){
$p.html($p.html()+'*事件处理程序2*);
})

点击我


这些选项都不会覆盖以前绑定的处理程序。你能制作一个演示来展示你的问题吗?什么是
$input
?除非显式取消所有事件传播,否则jQuery事件处理程序不会“覆盖”其他处理程序。这些选项都不会覆盖以前绑定的处理程序。你能制作一个演示来展示你的问题吗?什么是
$input
?除非显式取消所有事件传播,否则jQuery事件处理程序不会“覆盖”其他处理程序。这些选项都不会覆盖以前绑定的处理程序。你能制作一个演示来展示你的问题吗?什么是
$input
?除非显式取消所有事件传播,否则jQuery事件处理程序不会“覆盖”其他处理程序。这些选项都不会覆盖以前绑定的处理程序。你能制作一个演示来展示你的问题吗?什么是
$input
?jQuery事件处理程序不会“覆盖”其他处理程序,除非显式取消所有事件传播。哇,我不知道名称空间事件!这是有趣的信息^一样。问题是,其中一个事件来自我编写的一个方法,该方法应该可以在任何页面上使用。如果另一个开发人员正在使用我的函数,我不希望他们必须记住为其他keyup事件命名名称空间。有没有办法解决这个问题?@JarrydGoodman我想你需要提供更多关于具体问题的上下文,正如mathletics所指出的,你应该能够在一个事件中添加两个处理程序而不会出现问题。名称空间只是一种方便添加和删除事件的工具。Jarryd,检查处理事件的函数和代码。添加侦听器堆栈不会覆盖。这听起来更像是你的代码中的某个东西阻止了事件的传播,当其中一个事件被触发时执行。哇,我不知道名称空间事件!这是有趣的信息^一样。问题是,其中一个事件来自我编写的一个方法,该方法应该可以在任何页面上使用。如果另一个开发人员正在使用我的函数,我不希望他们必须记住为其他keyup事件命名名称空间。有没有办法解决这个问题?@JarrydGoodman我想你需要提供更多关于具体问题的上下文,正如mathletics所指出的,你应该能够在一个事件中添加两个处理程序而不会出现问题。名称空间只是一种方便添加和删除事件的工具。Jarryd,检查处理事件的函数和代码。添加侦听器堆栈不会覆盖。这听起来更像是你的代码中的某个东西阻止了事件的传播,当其中一个事件被触发时执行。哇,我不知道名称空间事件!这是有趣的信息^一样。问题是,其中一个事件来自我编写的一个方法,该方法应该可以在任何页面上使用。如果另一个开发人员正在使用我的函数,我不希望他们必须记住为其他keyup事件命名名称空间。有没有办法解决这个问题?@JarrydGoodman我想你需要提供更多关于具体问题的上下文,正如mathletics所指出的,你应该能够在一个事件中添加两个处理程序而不会出现问题。名称空间只是一种方便添加和删除事件的工具。Jarryd,检查处理事件的函数和代码。添加侦听器堆栈不会覆盖。这听起来更像是您的代码中的某个东西阻止了事件传播,该东西在
$input.on('keyup.one', function () {})
$input.on('keyup.two', function () {})