jQuery 1.8.1 - live, livequery, on + change 不工作

Posted

技术标签:

【中文标题】jQuery 1.8.1 - live, livequery, on + change 不工作【英文标题】:jQuery 1.8.1 - live, livequery, on + change not working 【发布时间】: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”,单选按钮?然后您需要使用“点击”而不是更改。 【参考方案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

【讨论】:

以上是关于jQuery 1.8.1 - live, livequery, on + change 不工作的主要内容,如果未能解决你的问题,请参考以下文章

在 jQuery 中将 live() 变成 on()

使用 .live() 绑定 jQuery UI 自动完成

jQuery next() 不能与 live() 一起使用

jQuery中live()使用报错,TypeError: $(...).live is not a function

Jquery 如何在可拖动对象上使用 .live

jquery 插件:使用 live() 的工具提示插件