gpt4 book ai didi

javascript - jQuery .live ('click' ) 只绑定(bind)到页面上的第一个元素

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

我编写了一个绑定(bind)到页面上 8 个元素的 jQuery 插件,我想使用 .live() 将点击操作绑定(bind)到每个元素中的一个链接。当您单击链接时,它应该使用 ajax 发布一个表单。问题是所有 8 个元素的所有链接都会提交页面上第一个元素的表单。当我使用 .click() 时,一切正常。我更愿意使用 .live(),因为我将动态添加更多元素。

下面是一些与我正在做的类似的代码:

var $container = $(this);
var $form = $container.find('form.some_form');
var $button = $container.find('a.some_link');

这只会提交第一个元素的表单:

$button
.live('click', function() {
// some code that submits $form via ajax
});

但是,这总是会提交正确的表单:

$button
.click( function() {
// identical code that submits $form via ajax
});

关于 .live() 有什么我应该知道的吗?难倒了。

最佳答案

来自jQuery documentation :

Live events currently only work when used against a selector. For example, this would work: $("li a").live(...) but this would not: $("a", someElement).live(...) and neither would this: $("a").parent().live(...).

在您的例子中,您在一个变量上调用 live(),该变量是 find() 调用的结果。那不是选择器。您需要找到一个选择器来标识您想要的元素。


编辑添加:对于以后发现此问题的任何人,现在首选的方法是为此使用函数 on()on() 函数没有相同的限制——因为它在 jQuery 对象上运行(而不是隐式绑定(bind)到文档),它可以设置在通过链接获得的一组元素上在原始问题中。

关于javascript - jQuery .live ('click' ) 只绑定(bind)到页面上的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1632344/

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