【问题标题】:jQuery 1.8.1 - live, livequery, on + change not workingjQuery 1.8.1 - live, livequery, on + change 不工作
【发布时间】:2012-09-06 23:46:05
【问题描述】:

我的代码是:

jQuery('#s_valor').on('change', function () {
    alert('Help mee!!');
});

“#s_valor”已加载 (jQuery.load),这适用于 Opera,但不适用于 Firefox 15。我使用的是 Ubuntu,我尝试过 live()、on() 和 livequery(),没有人在 Firefox 15 上工作过。

有人给我小费吗? (对不起我的英语不好,我是巴西人)

【问题讨论】:

  • ... 什么是“#s_valor”,单选按钮?然后您需要使用“点击”而不是更改。

标签: jquery firefox live livequery


【解决方案1】:

当您动态加载元素时,您需要将.on() 与 DOM 中已有的元素一起使用。通常最坏的情况是身体元素。例如:

jQuery('body').on('change', '#s_valor', function () {
    alert('Help mee!!');
});

【讨论】:

    【解决方案2】:

    您是否将其附在文档中。准备功能.. 还要在其中放置一个警报并检查 jQuery 文件是否与您的页面正确关联..

    $(function() {
       jQuery('#s_valor').on('change', function () {
          alert('Help mee!!');
       });
    });
    

    【讨论】:

    • 代码在正确的位置...我还有其他功能可以使用,只有这个事件不起作用...
    • #s_valor 元素到底是什么
    • "#s_valor" 是输入文本元素
    • 那么为什么不在元素创建后立即绑定事件呢。看起来你甚至在元素在标记中可用之前就绑定了事件
    【解决方案3】:

    $(document).on('click', 'p', $.noop);

    甚至

    $(document).delegate('p', 'click', $.noop);

    http://jsperf.com/jquery-live-vs-delegate-vs-on/33

    【讨论】:

      猜你喜欢
      • 2010-12-25
      • 2017-03-23
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-20
      相关资源
      最近更新 更多