gpt4 book ai didi

php - jQuery live() 函数

转载 作者:行者123 更新时间:2023-12-01 06:40:14 27 4
gpt4 key购买 nike

我对 jQuery 的 live() 函数有疑问。

我正在使用 PHP 创建购物篮,并对 php 脚本进行 json 调用以将特定项目添加到购物篮中。我决定使用 live(),而不是将点击重新绑定(bind)到按钮(标签),但它似乎不喜欢它。

这是我的电话:

if ($('.add_to_basket').length > 0) {
$('.add_to_basket').live('click', function() {
var button = $(this);
var id = $(this).attr("rel");
$.getJSON("/basket/action/add/id/" + id, function(data) {
if (!data.error) {
$('.basket_no_of_items').text(data.no_of_items);
$('.basket_items_total').text(data.total);
button.text('Remove from the basket');
}
});
return false;
});
}

知道我可能做错了什么吗?

我已经检查了 firebug,它似乎只将请求发布到/basket/action/add - 没有 id 位。

最佳答案

使用live()的整个想法是在一组元素上发生事件(例如单击)时注册一个函数,无论它们在创建时是否存在函数。

添加 ($('.add_to_basket').length > 0) 将检查该特定元素集是否存在。根据我上面的描述,这是适得其反的。所以,要么:

  1. 删除 ($('.add_to_basket').length > 0) ,这应该适用于所有 .add_to_basket 元素
  2. $('.add_to_basket').live('click', function() {...}); 更改为 $('.add_to_basket').click(function () {...}); 并用 $(document).ready() 包裹它,以确保在函数注册到点击时所有 DOM 元素都已加载.

希望这是有道理的。

苏特

关于php - jQuery live() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5535749/

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