gpt4 book ai didi

javascript - 如何说 jQuery 在新附加的对象中执行 .blur() 函数?

转载 作者:行者123 更新时间:2023-12-02 18:28:57 25 4
gpt4 key购买 nike

这个问题与that有关当用户在输入中键入数据并聚焦于另一个 div 时,此代码会隐藏 div

$(".Q,.A").blur(function(e) {
if ($(this).val().length > 0 && $(this).siblings("input").val().length > 0) {
$(this).parent().fadeOut(1000);
getData("ajaxPHP/insertNewWords.php?q='" + $(this).siblings('input').val() + "'&a='" + $(this).val() + "'&zestawID="+zestawID, "console");
$(".main").append("<div><input type='text' class='Q'></input><input type='text' class='A'></input></div><br>");
}
});

当用户输入数据时,该 div 会隐藏,脚本会创建新的 div(因此用户可以输入无限量的数据)。问题是:新创建的 div 不会隐藏。

如果我想将新创建的 div 包含到“$(”.Q,.A”)”中,我该怎么办?

最佳答案

问题是(据我所知),您有一个行为附加到页面上的一组节点,并且添加到页面的新节点不会拾取此行为。

这是因为 JQuery 的工作方式。当您定义像 $(".Q,.A") 这样的选择器时,此选择器将计算页面上的一组已知节点。下面的代码仅适用于那些找到的元素。该选择器永远不会再次评估,因此任何新节点都没有机会获得您想要的行为。

解决方案是让 JQuery 在每次事件发生时重新评估选择器。因此,您需要全局监听该事件,然后过滤以仅处理与您的选择器匹配的元素。

正确的方法是 on

$(document).on("blur", ".Q,.A", function(){ ... });  

参见:http://jsfiddle.net/sAT6L/

Live关于它在每个版本的 JQuery 中如何完成的一些讨论。

注意:您应该能够将范围限制为比 $(document) 更本地化的内容。

关于javascript - 如何说 jQuery 在新附加的对象中执行 .blur() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18032276/

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