gpt4 book ai didi

javascript - 在 1.6 中的 jquery 事件处理程序中面临问题,而不是在最新版本中。

转载 作者:行者123 更新时间:2023-11-30 21:06:07 27 4
gpt4 key购买 nike

目前我有一个 Jquery 1.6 版本的库,有时间更新。我正在尝试实现 Jquery 事件处理程序。

我有一组有很多按钮的 div。按钮不断动态添加,我正在尝试使用 Jquerys 事件处理程序来跟踪新添加的按钮。

<div class="reason_badCode">
<input type="text" /><input type="button" value="Click Me" rel="button_reason_badCode"/>
<input type="text" /><input type="button" value="Click Me" rel="button_reason_badCode"/>
<input type="text" /><input type="button" value="Click Me" rel="button_reason_badCode"/>
</div>

<div class="reason_someOtherBadCode">
<input type="text" /><input type="button" value="Click Me" rel="button_reason_someOtherBadCode"/>
<input type="text" /><input type="button" value="Click Me" rel="button_reason_someOtherBadCode"/>
<input type="text" /><input type="button" value="Click Me" rel="button_reason_someOtherBadCode"/>
</div>

现在不断添加按钮和文本框的组合。

$('div[class^="reason_"]').live('click', 'input[rel^="button_reason"]', function(event) {
console.log("clicked");
});

我的 JsFiddle:https://jsfiddle.net/994ndy9c/

正如在 fiddle 中看到的那样,只要我在文本框中键入内容,就会打印“clicked”。我对打字时调用的函数不感兴趣。在较新版本的 Jquery 中,如果我将 live 替换为 on,它会完美运行。

有没有办法让这个在 jquery 1.6 上工作

最佳答案

问题是因为您错误地使用了 live()。您当前使用的方法签名匹配委托(delegate) on() 处理程序所需的内容,而不是 live()

相反,您需要选择动态元素作为主要选择器,并仅使用事件名称字符串和处理函数对其调用 live(),如下所示:

$('input[rel^="button_reason"]').live('click', function(event) {
console.log("clicked");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
<div class="reason_badCode">
<input type="text" />
<input type="button" value="Click Me" rel="button_reason_badCode" />
<input type="text" />
<input type="button" value="Click Me" rel="button_reason_badCode" />
<input type="text" />
<input type="button" value="Click Me" rel="button_reason_badCode" />
</div>

<div class="reason_someOtherBadCode">
<input type="text" />
<input type="button" value="Click Me" rel="button_reason_someOtherBadCode" />
<input type="text" />
<input type="button" value="Click Me" rel="button_reason_someOtherBadCode" />
<input type="text" />
<input type="button" value="Click Me" rel="button_reason_someOtherBadCode" />
</div>

话虽如此,我强烈建议您升级您正在使用的 jQuery 版本,以便您可以利用 jQuery 的 on() 方法和其他性能改进。 1.6 已经超过 6 年了。

关于javascript - 在 1.6 中的 jquery 事件处理程序中面临问题,而不是在最新版本中。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46581045/

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