IE中的jQuery .live(’input)在删除文本时无法正常工作

基于此问题基于计数器的值淡入/淡出文本

我有以下标记: –

 

和以下jQuery: –

 jQuery('#TextBox1').live('input', function() { var charLength = $(this).val().length; $('#validator').html(charLength + ' of 250 characters used'); $('#validator').fadeInOrOut(!! charLength); if ($(this).val().length > 250) { $('#validator').html('You may only have up to 250 characters !'); } }); jQuery.fn.fadeInOrOut = function(status) { return status ? this.fadeIn() : this.fadeOut(); }; 

这一切在Firefox中运行良好,但在IE中,特别是在从textarea中删除文本时,.live()事件似乎没有被触发。

这里有一个小提琴演示如上所示,如果你在Firefox中加载function正常,在IE中加载并在textarea中添加一些文本,然后使用退格键删除一些文本。

http://jsfiddle.net/general_exception/CsXU8/

编辑使用doesent似乎有所作为,错误仍然存​​在。

根据您的jQuery版本,使用.on()而不是.live(),而不是绑定到input ,只需使用keyup来捕获事件

 jQuery('#TextBox1').on('keyup', function() { }); 

您可以使用keyup事件而不是通常不支持的input 。 您也可以使用on而不是弃用的live

 jQuery(document).on('keyup', '#TextBox1', function() { ... }); 

演示: http //jsfiddle.net/CsXU8/10/

对于IE8 / 9,使用以下代码替换第一行

jQuery('#TextBox1').on('keyup', function() {