gpt4 book ai didi

javascript - 为什么这个 jquery live 会进入一个无限循环,而一个几乎相同的 jquery 却没有?

转载 作者:行者123 更新时间:2023-11-30 06:05:40 25 4
gpt4 key购买 nike

我正在尝试创建一个表单,其中的值会根据选择中的更改或文本字段中的更改进行更新。

我从

开始
jQuery('select[name=measure]','form').live('change',function(){ alert('triggered');});

然后我在用户更改文本框时添加了 keyup

jQuery('select[name=measure],input[name=amount]','form').live('change keyup',function(){  alert('triggered');});

出于某种原因,当我选择一个选项时,这会进入无限循环,并在键入时多次触发(尽管不是无限次)。

当我变成

...live('keyup', function()...

对文本框的更改只会触发一次。我可以将它们分成两个单独的 .live 事件,然后创建一个单独的函数,但这似乎不是有效的代码。

最佳答案

它将 changekeyup 附加到 select[name=measure]input[name=amount].

我怀疑您希望输入有一个更改事件,而选择有一个按键事件。

我建议您将这两个现场事件分开。您可能也不需要 form 选择器。

$('select[name=measure]').live('change', SomeFunction);

$('input[name=amount]').live('keyup', SomeFunction);

function SomeFunction() {
// this isn't inefficient
}

工作示例:http://jsfiddle.net/K7586/


或者你可以使用delegate()

$("form")
.delegate("input[name=amount]", "keyup", SomeFunction)
.delegate("select[name=measure]", "change", SomeFunction);

function SomeFunction() {
// this isn't inefficient
}

关于javascript - 为什么这个 jquery live 会进入一个无限循环,而一个几乎相同的 jquery 却没有?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5020379/

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