【问题标题】:jQuery - Update css after JSON appendjQuery - 在 JSON 追加后更新 css
【发布时间】:2012-06-09 14:09:41
【问题描述】:

第一次发帖;长期读者。我遇到了这个问题,我现在知道原因,但我找不到最终结果/修复。如果之前已经回答过,请提前道歉。

我在 php 中有一些数据,这些数据通过 jQuery (JSON) 中的 ajax 命令附加。这会正确显示,采用分配的特定 CSS 等。

我显示的时间显示“10 分钟前”或发布的时间有多长,但我试图让它显示悬停时的实际日期/时间。这是最终产品,但为了达到这一点,我只是尝试分配一个 CSS 进行视觉测试,以确保它确实有效。

鼠标悬停命令可以在任何时候发生,所以一旦附加了 JSON 数据,我就不能这样做了。

$("span.post-name").mouseover(function () {
    $(this).css("color","red");
});

此函数确实适用于直接放入 HTML 的同一个跨度,但不适用于构建的数据。任何帮助将不胜感激..

【问题讨论】:

    标签: jquery json append


    【解决方案1】:
    $("span.post-name").live('mouseover',function () {
        $(this).css("color","red");
    });
    

    您需要使用 .live,因为新的 html 是动态插入的。

    【讨论】:

    • Per: api.jquery.com/live .live() 已被弃用。建议使用关闭.on().delegate()
    • @AndrewPeacock 不知道 :)
    • @thnom 请使用.on(),因为“从 jQuery 1.7 开始,.live() 方法已被弃用。”来源:api.jquery.com/live
    • 最近我也没有。必须转换我所有的旧 .live() 事件很痛苦,因为 .live() 非常好和简单!
    • 是的,完全是。我想我只需要修改我的脚本。真是头疼
    【解决方案2】:

    向动态添加的内容添加功能有问题吗?如果是这样,那么你会想要使用.on() 并让它看起来像这样:

    
    $("body").on("mouseenter", "span.post-name" function(event) {
       ("span.post-name").css("color", "red");
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-12
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-25
      • 2022-11-21
      • 1970-01-01
      相关资源
      最近更新 更多