javascript - jQuery 无法识别 .get 请求中的类更改

标签 javascript jquery getjson

我从 node.js 服务器获取一些数据,这些数据会影响我的一些元素的类。

$.get('/example', function (data)
{
//changes element 1 to .newclass from .oldclass
});

不幸的是,get 请求之外的事件处理程序无法识别更新的类。

$('.oldclass').click(function ()
{
//affects both element 1 and 2
});

如果我将单击事件处理程序嵌套在 get 中,问题就不再存在。我怀疑这与异步请求有关,但我不完全确定。有人可以向我解释为什么会发生这种情况以及如何解决它而不将我的代码嵌套在每个 get 请求中吗?

最佳答案

您应该使用事件委托(delegate):

$('body').on('click', '.oldclass', function() { /* whatever */ });

通过这样做,您可以捕获具有“oldclass”的元素上的事件,而不管 DOM 的动态更新如何。在您的代码中,您在代码运行的瞬间发现了带有“oldclass”的元素。如果元素随后发生更改,这些事件处理程序不会消失。

没有必要将委托(delegate)事件处理程序卡在 body 元素上,但这是最简单的事情。一般来说,它可以是任何适当的父元素,并且它将处理匹配后代的事件。

关于javascript - jQuery 无法识别 .get 请求中的类更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16174327/

相关文章:

javascript - D3 过渡 : Fading in and out the colors within a gradient fill

javascript - 游戏如何删除数据库中的对象但同时将其动画化

javascript - jQuery click 函数只执行一次

android - 如何在 Android 中将 JSON ARRAY 数据发布到服务器

jquery - 如何在 jQuery 中为 getJSON 设置缓存 false?

javascript - setDate() 在 31 日设置了错误的日期?

javascript - 关于使用 ruby​​ on rails 创建跨浏览器网站 GUI 的建议?

jquery - 点击后搜索栏

带有数组的 Javascript/jQuery 动画

jquery - $.getJSON 返回 "undefined"值,数据读取 [object Object]