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() {