Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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_Html - Fatal编程技术网

Javascript 如何同时解除绑定事件处理程序和传递参数?

Javascript 如何同时解除绑定事件处理程序和传递参数?,javascript,jquery,html,Javascript,Jquery,Html,我的代码中有以下场景: 函数外部(){ 控制台日志(x); //一段时间后,如果满足某些条件,则将处理程序从#红色中移除 $(“红色”)。关闭(“单击”,外部); } 函数内部(){ var x=786; $(“红色”)。单击(外部); } 内() 红色 .off()与.on()一起使用。因此,您的代码可以如下所示: function outer(x) { $('body').append('<br>button clicked and event removed! x va

我的代码中有以下场景:

函数外部(){
控制台日志(x);
//一段时间后,如果满足某些条件,则将处理程序从#红色中移除
$(“红色”)。关闭(“单击”,外部);
}
函数内部(){
var x=786;
$(“红色”)。单击(外部);
}
内()

红色
.off()
.on()
一起使用。因此,您的代码可以如下所示:

function outer(x) {
  $('body').append('<br>button clicked and event removed! x value: ' + x);
  $("#red").off(".onlythis");
}

function inner() {
  var x = 786;  
  $("#red").on('click.onlythis', function(){ outer(x); }); 
}

inner();
功能外部(x){
$('body').append('
单击按钮并删除事件!x值:'+x); $(“红色”).off(“.onlythis”); } 函数内部(){ var x=786; $(“#红色”).on('click.onlythis',function(){outer(x);}); } 内();

.off()
.on()
一起使用。因此,您的代码可以如下所示:

function outer(x) {
  $('body').append('<br>button clicked and event removed! x value: ' + x);
  $("#red").off(".onlythis");
}

function inner() {
  var x = 786;  
  $("#red").on('click.onlythis', function(){ outer(x); }); 
}

inner();
功能外部(x){
$('body').append('
单击按钮并删除事件!x值:'+x); $(“红色”).off(“.onlythis”); } 函数内部(){ var x=786; $(“#红色”).on('click.onlythis',function(){outer(x);}); } 内();


但这将从
#red
中删除所有单击事件。我只想删除特定的处理程序。绑定事件时可以使用命名空间。我已经编辑了答案我们也可以在纯javascript removeEventListener中使用名称空间吗?但这将从
#red
中删除所有单击事件。我只想删除特定的处理程序。绑定事件时可以使用命名空间。我已经编辑了答案我们也可以在纯javascript removeEventListener中使用名称空间吗?