gpt4 book ai didi

javascript - 自定义事件触发它由相同的事件处理程序缓存

转载 作者:行者123 更新时间:2023-11-29 19:46:02 24 4
gpt4 key购买 nike

我创建了一个名为 foo 的自定义事件,并在我的代码中注册了这两个监听器

var $selector1 = $('#foocontainer .item');
var $selector2 = $('#blah .item');

$(document).on('foo',$selector1,
function(){ console.log('blah');
});
$(document).on('foo',$selector2,
function(){ alert('testing 123...');
});

如您所见,选择器和事件处理程序是不同的,为什么当我触发事件时,捕获它的事件处理程序总是第一个?我假设每个选择器都有自己的事件处理程序,因此不应混淆。

我用函数触发器触发了事件

$('.item').click(function(){
$(this).trigger('foo');
});

我是否遗漏了什么?

最佳答案

jQuery.on需要一个字符串选择器,您正在向它传递一个 jQuery 对象:

$(document).on('foo', $selector1, 
function(){ console.log('blah');
});

您可以通过将 on 语句更改为类似以下内容来解决此问题:

$(document).on('foo', "#d1", function () {
// do something
});

jsFiddle

关于javascript - 自定义事件触发它由相同的事件处理程序缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19641581/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com