gpt4 book ai didi

javascript - 在事件委托(delegate)中传递 jQuery 对象

转载 作者:搜寻专家 更新时间:2023-11-01 04:52:12 25 4
gpt4 key购买 nike

// Snippet 1
$(document).on("keyup blur", "#selector_1_id", function() {
// DO SOMETHING
});

$(document).on("keyup blur", "#selector_2_id", function() {
// DO SOMETHING
});


// Snippet 2
var selector_1_id = $("input[name=selector_1_id]");
var selector_2_id = $("input[name=selector_2_id]");

$(document).on("keyup blur", selector_1_id, function() {
// DO SOMETHING
});

$(document).on("keyup blur", selector_2_id, function() {
// DO SOMETHING
});

为什么这些片段的行为似乎有所不同?虽然第一个实际上看起来很理想,那就是 keyup 和 blur 实际上在 keyup 和 blur 事件上应用在选择器上,而另一个似乎没有那么理想地工作,它的行为就像代码片段一直在运行。

我正在使用 JavaScript 在实时网站上启用和禁用输入类型。

最佳答案

您不能像那样通过该函数传递元素,它必须是 string 选择器。

$(document).on("keyup blur", selector_2_id, function() {
// DO SOMETHING
});

不会工作,事实上 keyupblur 每次都会在文档而不是选择器上触发

如果您在变量中有该元素,则无需执行此操作,因为无论如何您都有对该元素的引用,您只有在可以随时添加该元素并且您没有对它的引用时才使用它。

所以

selector_2_id.on('keyup blur', function() {
// DO SOMETHING
});

应该可以完美地工作。

深入观察

A selector string to filter the descendants of the selected elements that trigger the event. If the selector is null or omitted, the event is always triggered when it reaches the selected element.

那么这个是什么意思呢

$(document).on('keyup blur', selector_2_id, function(){
^------^ = 1 ^-----------^ = 2
});

如果2null省略,则1将用于事件

关于javascript - 在事件委托(delegate)中传递 jQuery 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17868378/

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